Hallo,
nun brauche ich selber Hilfe mit RegEx. Normalerweise kann ich da auch anderen Helfen (hier aber bisher noch nicht), aber vielleicht brauche ich auch nur eine Brille?
Es geht um folgenden regulären Ausdruck:
$zeile =~ (^\d*?:\d*?):\d*?-(\d*?-\d*?-\d*?)-(\D*):[0-9]*\+([\.\w-_@,]*)[\+,]\d\+([\/\w\s-\.\+]*\.tif)\+.*$/;
Wenn dieser auf diese Textzeile ausgeführt wird:
07:40:14-25-01-2007-Fax an:750895+Fax_AK-Reha@na.lsv.local+3+/var/spool/capifax/recvq/cfn0112107-05141723179.tif+/var/spool/capifax/recvq/cfn0112107-05141723179.tif.pdf+05141723179+0+0x3490
Hat man die folgende richtige Ausgabe:
Ausgaben:
$1 -> 07:40
$2 -> 25-01-2007
$3 -> Fax an
$4 -> Fax_AK-Reha@na.lsv.local
$5 -> /var/spool/capifax/recvq/cfn0112107-05141723179.tif
Auf die folgende Textzeile angewendet, ist die Ausgabe fehlerhaft (leer):
07:50:09-25-01-2007-Fax an:750030+FAX_KMB-GemB@na.lsv.local,ren.westphal@na.lsv.local,+1+/var/spool/capifax/recvq/cfn0112108-+49 5175 31278.tif+/var/spool/capifax/recvq/cfn0112109-+49 5175 31278.tif.pdf++49 5175 31278+0+0x3490
Ausgaben:
$1 ->
$2 ->
$3 ->
$4 ->
$5 -> /var/spool/capifax/recvq/cfn0112108-+49 5175 31278.tif
Bevor der reguläre Ausdruck...
$zeile =~ (^\d*?:\d*?):\d*?-(\d*?-\d*?-\d*?)-(\D*):[0-9]*\+([\.\w-_@,]*)[\+,]\d\+([\/\w\s-\.\+]*\.tif)\+.*$/;
auf die Zeile angewendet wird, wird die Zeile ($zeile) dabei als Erstes von Zeilenumbrüchen befreit:
$zeile =~ s/\015\012\|\015|\012//sg; // Lehrzeichen und Backspace entfernen
So, wo liegt denn da der Fehler? Wäre für Hilfe echt dankbar, ich blick da nicht mehr durch..
Ich wäre super dankbar, wenn mir jemand zu diesem sehr speziellen Thema eine Antwort geben könnte!
Eine kurze Referenz zu regulären Ausdrücken in Perl gibt es hier:
http://de.selfhtml.org/perl/sprache/regexpr.htm