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  
 nicht angemeldet
 nicht angemeldet