lui: Zahlen aus String

Hallo,

ich möchte gerne aus einem String Zahlen auslesen.

z.B. /hjk/iouoi/oiuoi_30

Die Zahlen dürfen nur vom Ende des Strings genommen werden, können jedoch 1 -> 3 Stellen betragen. Der Unterstrich ist immer vorhanden, kann jedoch mehrmals im String vorhanden sein.

Gruß
              lui

  1. gudn tach lui!

    ich möchte gerne aus einem String Zahlen auslesen.

    z.B. /hjk/iouoi/oiuoi_30

    Die Zahlen dürfen nur vom Ende des Strings genommen werden, können jedoch 1 -> 3 Stellen betragen. Der Unterstrich ist immer vorhanden, kann jedoch mehrmals im String vorhanden sein.

    $_ = '/hjk/iouoi/oiuoi_30';  
    print $1 if /_(\d{1,3})$/;
    

    wenn du sicher bist, dass immer eine zahl am ende steht und sich immer ein "_" davor befindet, dann kannst du auch einfach mittels rindex dieses "_" suchen und den string danach via substr extrahieren. dann kaemst du ohne regexp aus.
    was besser/schneller ist, weiss ich nicht.

    prost
    seth

  2. Hallo,

    ich möchte gerne aus einem String Zahlen auslesen.
    z.B. /hjk/iouoi/oiuoi_30

    mit $myString =~ s/\D//g;
    löschst Du alle nicht-Ziffern (das s steht für substitute [esetze das zwischen dem ersten und dem zweiten / mit dem zwischen dem zweiten und dem dritten], das \D für alle nicht-Ziffern, das g am Ende steht für global, d.h. es wird nicht nur ein Zeichen sondern alle gelöscht).

    Gruß
    Steffen

    1. gudn tach!

      mit $myString =~ s/\D//g;

      wird z.b. aus "baz/66/foo/bar_6" -> "666", das wollte der OP afais nicht, sondern nur die zahl am schluss ermitteln.

      prost
      seth

  3. Hallo,

    Die Zahlen dürfen nur vom Ende des Strings genommen werden, können jedoch 1 -> 3 Stellen betragen. Der Unterstrich ist immer vorhanden, kann jedoch mehrmals im String vorhanden sein.

    Verwende eine Regex um die Zahlen im String zu ermitteln. Danach kannst Du sie einfahc weiter verarbeiten.

    Grüße
      Klaus