hallo liebes forum,
es ist zum verzweifeln. ich habe mir jetzt seit gut 2 stunden diverse anleitungen und hilfestellungen zu regex im internet durchgelesen, aber ich komme zu keinem ergebnis. ich hoffe, dass hier irgendjemand ist, der vielleicht eine lösung oder einen lösungsansatz hat (ich denke, es geht hier um maximal 10 zeichen, die mir fehlen oder die falsch sind).
problem:
ich habe einen string, der unter anderem einen (oder mehrere) <SPAN>-bereich enthält bzw enthalten kann:
$test = 'das ist ein test. <SPAN id="nummer1" style="color:#000000;">blubb.</SPAN> hier gehts dann fröhlich weiter. <SPAN id="nummer2" style="color:#ff0000;">test.</SPAN> noch mehr text';
nun möchte ich z.b. den ersten span-bereich per eregi_replace (PHP) ersetzen und dann ausgeben, bisher hab ich das so gemacht:
echo eregi_replace('<SPAN id="nummer1".*[^</SPAN>]</SPAN>','WEG',$test);
diese lösung klappt soweit ganz gut, allerdings nur in solchen fällen, in denen in dem string $test nur EIN span-bereich ist. denn diese lösung "übersieht" das ende des ersten span (</SPAN>) und nimmt dann das ende des zweiten span als absolutes ende des suchergebnisses.
es liegt wohl daran, dass [^</SPAN>] eben nicht "</SPAN>" ausschließt, sondern jedes zeichen einzeln. zumindest vermute ich das. wie kann ich dann angeben, dass ich wirklich "</SPAN>" als string ausschließen möchte?
vielen vielen dank im voraus,
mit freundlichen grüßen,
wizz99.