Sönke Tesch: preg_match -> wo es nicht zutrifft

Beitrag lesen

$str = "<input type="button" value="x"><input type="text"value="blabla">

haben möchte ich "blabla"

mach ich jetzt ein:
preg_match('/value=(.*)/i',$string,$txt);

Das wird wahrscheinlich nix. Du solltest schon genau auf den Inhalt der Anführungszeichen einschränken, also statt 'value=(.*)' besser 'value="([^"]*)"', andernfalls bekommst Du den kompletten Rest der Zeile auch noch aufgedrückt.

wie kann ioch ihm dann sagen, dass wenn anstatt (.*) ein x steht, er diese value nicht finden soll?

Wenn ich mich recht entsinne, gibt es bedingte Ausdrücke, schau mal auf der entsprechenden Seite der PHP-Anleitung unter "Assertions" und "Conditional Subpatterns". Mir persönlich wäre das zu kompliziert, so daß ich lieber alles von preg_match() annehmen und erst anschließend aussortieren würde.

Gruß,
  soenk.e