Text Parsen darf kein

sirkofler

Grünschnabel
Hallo jungs ich habe folgendes:

PHP:
 $regex = "/<fontname=([a-zA-Z-_]*)(.*)>([^@]*)<I>([^<]*)<\/I>/msi";

So funktiniert mein Script Tadellos, nur das Problem ist jetzt, dass es mir nicht nacht dem "@" Suche sollte sondern nacht dem Wort fontname.

Aber wie mache ich das, ich habe scho alles Probiert, wer kann mir helfen?
 
Dann solltest du sie einfach nicht als Referenz angeben:
PHP:
<?php
	[…]
	$regex = "/<fontname=([a-zA-Z-_]*).*>[^@]*<I>[^<]*<\/I>/msi";
	[…]
?>
 
Also mein Versuch war:

PHP:
 $regex = "/<fontname=([a-zA-Z-_]*)(.*)>([^fontname]*)<I>([^<]*)<\/I>/msi";
  			$text = preg_replace_callback(
  				 $regex,
  				 create_function(
 					 '$matches',
  		    		'return "bablalba";'
  				 ),
  				$text
  			);	
  		 echo "Nach italic: ".$text."\n" ;
  	}
 
Zuletzt bearbeitet:
Ich bin mir nicht sicher, aber kann es sein das die Funktion nur Char suchen kann? das bedeutet dein Wort besteht aus mehreren Char und daher funktioniert es nicht!?

Gruß mgd-one

P.S. nur ne vermutung!
 
Ja genau, es must nacht Wort suche also: "fontname" zusammen.
Geht das überhaupt irgendwie mit den pregs?
Es müsst ja ja oder?
Ich mien nach "/fontname (.*)blabla/" geht ja auch, nur müsste es wie in meinem Beispiel oben negierbar sein.
 
Dafür kannst du eine vorrausschauende, nicht übereinstimmende, Bedingung abfragen:
Syntax:
Code:
(?!bedingung)

Das müsste in deinem Beispiel ca. so aussehen
Code:
"/<(?!fontname)([erlaubteZeichen]*)=([a-zA-Z-_]*)(.*)>([^@]*)<I>([^<]*)<\/I>/msi"
 
Zurück