Regex String in Datei suchen und Zeichen aus String ausgeben.

BillaBong

Erfahrenes Mitglied
Hallo,

ich habe folgendes Problem. Und zwar lese ich eine Datei ein. In dieser Datei suche ich eine bestimmte Zeichenkette. Wenn diese Zeichenkette vorkommt möchte ich aber nur bestimmte Zeichen in der Zeichenkette.

PHP:
<h1 id="irgendwas" test="irgendwas">TEXT</h1>

also ich möchte das wenn der String mit den "<h1" tags auftaucht aus diesem Sting nur die Ausgabe des Textes ?! :-O

Folgendes habe ich schon mal probiert.

PHP:
if(preg_match("/^<DT><H3\sADD_DATE=\"(.*)\"\sLAST_MODIFIED=\"(.*)\"\sID=\"(.*)\">(.*)</H3>$/", $zeile)){

		  		echo $zeile;

		  }

geht aber nicht richtig. Wobei das hier

PHP:
if(preg_match("/<DT><H3/", $zeile)){

		  		echo $zeile;

		  }

mir schon mal die richtigen Zeilen ausgiebt
 
Zuletzt bearbeitet:
Hallo Gumbo,

Danke erst mal, das erste mit dem h1 war vieleicht ein schlechtes beispiel. Der Suchstring sieht in wirklichkeit etwas Komplexer aus. Ich habe es jetzt soweit hinbekommen :


PHP:
//Suchen nach Zeichenkette
		  if(preg_match("/<DT><H3\sADD_DATE=\"(\d+)\"\sLAST_MODIFIED=\"(\d+)\"\sID=\"(.+)\">(.+)<\/H3>$/", $zeile)){

 //ersetzen bestimmter Zeichen
				ereg_replace("/<DT><H3\sADD_DATE=\"(\d+)\"\sLAST_MODIFIED=\"(\d+)\"\sID=\"(.+)\">/", "", $zeile);
				ereg_replace("/<\/H3>/", "", $zeile);
		  		echo $zeile;

  }

jedoch funtzt das mit dem "ereg_replace" irgendwie nicht so, vieleicht hast du ja auch noch ein verbesserungsvorschlag.
 
So ich habe es hinbekommen. Und zwar war das "ereg_replace" anscheinend falsch ( aber normal müsste es damit doch auch gehen oder nicht ?) ich habe jetzt "preg_replace" genommen damit geht es:

PHP:
//Suchen nach Zeichenkette
		  if(preg_match("/<DT><H3\sADD_DATE=\"(\d+)\"\sLAST_MODIFIED=\"(\d+)\"\sID=\"(.+)\">(.+)<\/H3>$/", $zeile)){
		  //ersetzen bestimmter Zeichen
				$zeile = preg_replace("/(.*)<DT><H3\sADD_DATE=\"(\d+)\"\sLAST_MODIFIED=\"(\d+)\"\sID=\"(.+)\">/", "", $zeile);
				$zeile = preg_replace("/<\/H3>/", "", $zeile);
		  		echo $zeile;

		  }
 
Zurück