Jörk: Zeichenkette immer nach zwei Zeichen spliten - reg Ausdruck

hi,

ich suche einen ausdruck um eine zeichenkette nach zwei zeichen zu spliten.

$var = "1234567890";
@var = split /??Ausdruck??/, $var;

ergebnis sollte sein:

@var = (12,34,56,78,90);

  1. hi,

    ich suche einen ausdruck um eine zeichenkette nach zwei zeichen zu spliten.

    Die CGI Spezifikation kennte keine regulären Ausdrücke.

    $var = "1234567890";
    @var = split /??Ausdruck??/, $var;

    ergebnis sollte sein:

    @var = (12,34,56,78,90);

    Du meinst PERL?

    $var =~ /(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;
    for($1,$2,$3,$4,$5){ push @var, $_} # ungeprüft

    Gruss, Rolf

    --
    50 Millionen Deutsche können nicht richtig HTML!
    1. Du meinst PERL?

      Ja genau.

      $var =~ /(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;
      for($1,$2,$3,$4,$5){ push @var, $_} # ungeprüft

      die länge der zeichenkette die in $var ist kann sich immer ändern.

      1. Du meinst PERL?

        Ja genau.

        $var =~ /(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/;
        for($1,$2,$3,$4,$5){ push @var, $_} # ungeprüft

        die länge der zeichenkette die in $var ist kann sich immer ändern.

        Hmm, du könntest ja ersteinmal so splitten
        @chain = split //, $var;

        Mit $chain[0] bis $chain[-1] kannst du da jede Ziffer einzeln ansprechen.

        Also kannst du mit dem Index durch die Kette gehen und deine 2erGruppen zusammenbauen auf ein weiteres Array.

        Gruss, Rolf

        --
        50 Millionen Deutsche können nicht richtig HTML!
  2. Hallo,

    so klappts...

    $var =~ s/(\d\d)(?=\d)(?!\d*,)/$1,/g;
    @arr = split(',', $var);

    Gruß Helmut

    1. Hallo,

      so klappts...

      $var =~ s/(\d\d)(?=\d)(?!\d*,)/$1,/g;
      @arr = split(',', $var);

      Spitze Helmut! Darf ich das auf die PerlBase tun?

      Gruss, Rolf

      http://perlbase.xwolf.de

      --
      50 Millionen Deutsche können nicht richtig HTML!
      1. Hallo,

        freilich gern.
        Machste gleich noch das dazu, das setzt Tausender Trennpunkte vorm Komma ein.

        $var = "123457890765498543298,3322";

        $text = reverse $var;
        $text =~ s/(\d\d\d)(?=\d)(?!\d*,)/$1./g;
        print scalar reverse $text;

        Ausgabe: 123.457.890.765.498.543.298,3322

        Kann man auch mal brauchen...

        Gruß Helmut

        1. Hallo,

          freilich gern.
          Machste gleich noch das dazu, das setzt Tausender Trennpunkte vorm Komma ein.

          $var = "123457890765498543298,3322";

          $text = reverse $var;
          $text =~ s/(\d\d\d)(?=\d)(?!\d*,)/$1./g;
          print scalar reverse $text;

          Ausgabe: 123.457.890.765.498.543.298,3322

          Kann man auch mal brauchen...

          Vielen Dank! Mach ich morgen.

          Gruss, Rolf

          --
          50 Millionen Deutsche können nicht richtig HTML!
        2. Moin Helmut,

          vielen Dank noch einmal. Deine CodeSchnippel sind nun auch auf der Perlbase zu finden:

          http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?query_string=%2Btausender+%2Btrennpunkte+%2Bzeichen+%2Bgruppieren&mode=simple_text

          http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=7.2&id=10

          Gruss, Rolf

          --
          50 Millionen Deutsche können nicht richtig HTML!
  3. Hi,

    ich suche einen ausdruck um eine zeichenkette nach zwei zeichen zu spliten.

    in </archiv/2004/3/77071/#m444786> schlägt Christian Kruse vor:

    my @nums = $str =~ /(..)/g;

    cu,
    Andreas

    --
    MudGuard? Siehe http://www.Mud-Guard.de/
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.