Hab hier einen einfachen BBCode-Regex.
my @allowedTags = ('b', 'i');
for (@allowedTags) {
$text =~ s{
[$](.+?)[$]
} {
replace($_,$1)
}egsx;
}
>
> Meine Frage betrifft aber eher nur den Regex bzw. das Suchmuster:
> \[$\_\](.+?)\[$\_\]
>
> Wie ist es möglich, dass das Suchmuster sich nur angesprochen fühlt, wenn es NICHT innerhalb von [code] steht? Ich bräuchte also im prinzip sowas:
>
> ^\[code\].\*\[$\_\](.+?)\[$\_\].\*^\[code\]
Wenn jeder Code in jedem Code geparst werden soll, musst du rekursiv parsen.
Deine Regex finde ich übrigens seltsam. du matcht auf [b]text[b]
wo du eventuell [b]text[/b] meinst
mfg Beat
--
><o(((°> ><o(((°>
<°)))o>< ><o(((°>o