Perl - Regex Problem

Gast #3176240
Lesenswert?

Hallo zusammen.

Kurz und knapp: Ich habe ein Problem mit folgender Regex.
Sie soll den String "Hallooo" nach der Anzahl von 0 bis 3 "o" 
durchsuchen.
Dementsprechend "ok" liefern (in der Konsole).

Leider passiert das aber nicht.

Wenn ich allerdings den Quantifier auf folgendes abändere, 
funktionierts:
1
m/o{1,3}/

Was mache ich falsch?


Hier der Code:
1
$string = "Hallooo";
2

3
if($string =~ m/o{,3}/)
4
{
5
    print "ok";
6
}
7

8
else
9
{
10
   print "not matched!";
11
}

Danke + Gruß
Janos
#3176275
Lesenswert?

\b matcht auf Wortgrenze und stellt sicher das es sich um ein einzelnes 
Hall(ooo) handelt.

{0,3} matcht auf 0 - 3faches Vorkommen des letzten Zeichens

\b sorgt dafür dass nach dem Hall(ooo) keine weiteren Buchstaben mehr 
kommen dürfen.

Damit wird das Hall(ooo) auch in einem String wie "Holla Hallooo Bingo" 
gefunden. Ein Halloooo wird nicht gematcht ein THallooo auch nicht.

Dein Fehler lag im {,3}. Es muss {0,3} heißen.

Jetzt klarer?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren