Hallo David, vielen Dank für Deine nette und hilfreiche Antwort! Am Donnerstag, 8. September 2005 00:22 schrieb David Haller:
Hallo,
Am Wed, 07 Sep 2005, Manfred Rebentisch schrieb:
Ah, also für PHP habe ich es gefunden:
file:/usr/share/doc/packages/phpdoc/manual/pcre.pattern.syntax.html
Das "pcre" steht fuer "Perl Compatible Regular Expression(s)". Siehe dazu also auch 'perldoc perlre' 'perldoc perlrequick', 'perldoc perlreref' und 'perldoc perlretut'.
Gut, das sind wirklich hilfreiche und umfangreiche Dokumente.
Und falls du mal wie der Ochs vor'm Berg stehst, dann frag doch einfach, hier oder in einer passenden newsgroup wie z.B. de.comp.lang.perl.misc wenn du z.B. eine RE fuer ein bestimmtest Problem suchst oder eine RE nicht nachvollziehen kannst.
Das ist ein tolles Angebot. Gut, ich habe es inzwischen herausbekommen. Ich wollte die PCRE-Syntax: "#\[email\]([a-z0-9&\-_.]+?@[\w\-]+\.([\w\-\.]+\.)?[\w]+)\[/email\]#si" die in PHP z.B. mit preg_replace benutzt wird, verwenden für GNU regcomp und regexec. Das sind keine PCRE-Funktionen, sondern die normalen POSIX Methoden. Erkannt wird damit ein String wie "[email]user@domain.tld[/email]". Ich habe es mit "\[email\]([[:alnum:]@\-_\.]*)\[/email\]" versucht und es funktioniert auch - aber es ist nicht das gleiche. Ich dachte, es sei richtig, die Syntax so umzustellen (nachdem ich die Doku gelesen hatte und wußte, daß "\w" Wortzeichen sind): "\[email\]([a-z0-9&\-_.]+?@[[:alnum:]\-]+\.([[:alnum:]\-\.]+\.)? [[:alpha:]]+)\[/email\]" und siehe da, jetzt funktioniert es. Auch mit der Syntax "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is" umgestellt zu "\[url\]([[:alpha:]]+?://[^\"[:space:]<]*?)\[/url\]" hatte ich Probleme, bis ich darauf kam, "[[:alpha:]]" statt "[:alpha:]" einzusetzen (um z.B. "[url]http://www.domain.tld[/url]" zu erkennen). Grüße Manfred