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
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o
Der Valigator leibt diese Fische