Beat: Regex: BBCode parsen

Beitrag lesen

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