Ich möchte mittels preg_replace_callback aus einem großen String bestimmte Tags filtern. Dabei möchte ich immer das innerste Paar ersetzen, also z.B.
[COLOR=blue]<tag 1>[/COLOR][COLOR=green]<tag 0>[/COLOR]Testtext[COLOR=red]<tag 1>[/COLOR]<b>Testtext</b>[COLOR=red]</tag>[/COLOR]Testtext[COLOR=green]</tag>[/COLOR]Testtext[COLOR=blue]</tag>[/COLOR]
Nun versuchte ich es mit
	
 Leider wird so immer das äußerste Tagpaar als Treffer erkannt.
Verwende ich
	
 klappt es immer nur wenn die Tags direkt anschließen. Ich möchte aber prüfen ob ich das innerste Tagpaar erwischt habe. 
Irgendwie stehe ich auf dem Schlauch. 
							
						
					[COLOR=blue]<tag 1>[/COLOR][COLOR=green]<tag 0>[/COLOR]Testtext[COLOR=red]<tag 1>[/COLOR]<b>Testtext</b>[COLOR=red]</tag>[/COLOR]Testtext[COLOR=green]</tag>[/COLOR]Testtext[COLOR=blue]</tag>[/COLOR]
Nun versuchte ich es mit
PHP-Code:
	
	
preg_replace_callback('/\<tag (1|0)\>.*(?!\<tag)\<\/tag\>/iU', "parse", $str); 
Verwende ich
PHP-Code:
	
	
preg_replace_callback('/\<tag (1|0)\>(?!\<tag).*(?!\<tag)\<\/tag\>/iU', "parse", $str); 
Irgendwie stehe ich auf dem Schlauch.
 
							
						 
          

 
							
						
Kommentar