RegEx in Perl, Treffer ausgeben, nicht ganze Zeite


bank24

Grünschnabel
#1
Folgender Code:

if ($_=~ /[0-2][0-9]:[0-5][0-9]/) {

print "$_";

}


Was muss ich in den if-Block schreiben, damit er mir nicht die ganze Zeile ($_) sondern NUR den Treffer auf den Regex, also z.B "12:39" ausgibt?

LG
Florian

Shame on me...

"Das Ergebnis des letzten Matches wird in der speziellen Variable $/ gespeichert, und im String-Kontext wird daraus automatisch der Teil des Strings, auf den die Regex gepasst hat."

http://perl-6.de/tutorials/regex

bank24 hat gesagt.:
Shame on me...

"Das Ergebnis des letzten Matches wird in der speziellen Variable $/ gespeichert, und im String-Kontext wird daraus automatisch der Teil des Strings, auf den die Regex gepasst hat."

http://perl-6.de/tutorials/regex

ok es klappt doch nicht.

weder mit print $\ noch mit mit print $1. bekomme ich das Match ausgegebn.

ich habe als beispiel folgenden Code benutzt:

my $str = "Du schuldest mir 122 Euro";

if ($str ~~ m/\d+/) {
print "$/ Euro, verstanden?";

}

mit $& funktionierts...
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge