Beat: preg_match_all: Bestimmte Wortbausteine aus String lesen.

Beitrag lesen

Wie würdest Du einen Ausdruck angeben, der auch eventuelle Probleme berücksichtigt?

Zuerst würde ich eine Syntax definieren für den Datentyp
TextbausteinIdentifikator

Ein textbaustein

  • muss beginnen mit ##
  • gefolgt von 1 oder mehr Zeichen aus [A-Za-z0-9_]

sorry; in Perl:

my $TextbausteinIdentifikator = qr/##[A-Za-z0-9_]+/;

Diese Syntax gilt es in der Aplikation an die Anwender halt mitzuteilen.
Mag sie auch beschränkt sein, so erspart sie dir viele Probleme.

Jetzt kann ich zuverlässig parsen
$text =~ s/($TextbausteinIdentifikator)/replacetoken($1)/e;

Das ist eine RE mit callback Funktion.

Die schlichte Wahrheit ist, dass Reguläre Expressions und Unicode-Zeichen über den ASCII Bereich hinaus schlecht miteinander Tango tanzen.

mfg Beat

--
><o(((°>           ><o(((°>
   <°)))o><                     ><o(((°>o
Der Valigator leibt diese Fische