VerstÀndnisfrage bzgl. Wortgrenze bei regul. Ausdr.

20/01/2010 - 11:59 von JP Bruns | Report spam
Hallo,

gegeben ist eine Zeichenfolge in Form eines typischen Email-Datums.

"Date: Fri, 15 Jan 2010 12:32:45 +0100";

Diese Zeile versuche ich nach Monat und Jahr zu durchsuchen und
verwende dabei einen regulàren Ausdruck, der die Wortgrenzen zwischen
den Angaben beachten und das Gefundene in zwei Variablen
speichern soll. Allerdings scheitert folgender Ausdruck:

/\b(\w{3})\b(\d{4})\b/

... und ich raffe nicht, warum. Laut O'Reillys "Einführung in Perl"
kann solch ein Ausdruck nie wahr werden. Beim ersten Durchlesen des
Buches war mir auch klar, warum, nur stehe ich gerade gründlich auf
dem Schlauch.

Vielleicht kann mir das jemand erklàren?


JP
 

Lesen sie die antworten

#1 Helmut Wollmersdorfer
20/01/2010 - 12:26 | Warnen spam
JP Bruns wrote:

gegeben ist eine Zeichenfolge in Form eines typischen Email-Datums.

"Date: Fri, 15 Jan 2010 12:32:45 +0100";

Diese Zeile versuche ich nach Monat und Jahr zu durchsuchen und
verwende dabei einen regulàren Ausdruck, der die Wortgrenzen zwischen
den Angaben beachten und das Gefundene in zwei Variablen
speichern soll. Allerdings scheitert folgender Ausdruck:

/\b(\w{3})\b(\d{4})\b/

... und ich raffe nicht, warum.



\b hat keine Lànge. Zwischen 'Jan' und '2010' befindet sich aber ein
Zeichen.

Du müsstest also z.B. schreiben:

/\b(\w{3})\b\W\b(\d{4})\b/

oder gleich

/\b(\w{3})\W+(\d{4})\b/

Statt \W+ kannst Du in diesem Fall natürlich auch \s+ nehmen.

Helmut Wollmersdorfer

Ähnliche fragen