Hallo Felix.
/(<body[^>]*>)/i
findet alles was mit "<body" anfängt, mit ">" aufhört, und was dazwischen beliebig viele (auch keine) Zeichen enthalten kann, die aber allesamt kein ">" sein dürfen.
Hm. Im Grunde ist dieser übliche Ausdruck überholt, da folgendes sehr wohl erlaubt ist:
<body title="Go to the right ->">
<h1>Bla!</h1>
</body>
Es müsste also auf „<body“ gefolgt von keinem oder einem beliebigen Zeichen und „>“--sofern es sich innerhalb von " oder ' befindet--beliebig oft, gefolgt von „>“ gematcht werden.
Mein bisheriger Versuch:
/(<body(?(["'].*>.*["'])…|[^>]*)>(.*)<\/body>)/i
An Stelle des „…“ muss natürlich noch ein brauchbarer Ausdruck, aber mir fällt keiner ein.
Außerdem erhalte ich sowohl in JS als auch in PHP „Compilation failed: assertion expected after (?(“.
Habe ich die bedingten Unterausdrücke falsch verstanden?
Einen schönen Freitag noch.
Gruß, Ashura
sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
mathbr:del.icio.us/ mathbr:w00t/