Thomas Mell: Suche RegExp

Beitrag lesen

Hi Dieter
das {2,} war es, darauf bin ich nicht gekommen - vielen Dank.
Für die Nachwelt hinterlasse ich hier mal die RegExp welche sich an die W3C-Spezifikationen hält (für ein-Byte Kodierungen):

$reg_S        = '[\x20\x09\x0D\x0A]';
$reg_Letter   = '[A-Za-z\xC0-\xD6\xD8-\xF6\xF8-\xFF]';
$reg_NameChar = "{$reg_Letter}|[0-9]|[.-_:\xB7]";
$reg_Name     = "(?:{$reg_Letter}|_|:)(?:{$reg_NameChar})*";

preg_match("§<{$reg_Name}{$reg_S}+(?:{$reg_Name}{$reg_S}*={$reg_S}*(['"])[^\1]*?\1){2,}[^>]*?>§", $value);

Der RegExp wurde mit folgenden Definitionen erfolgreich getestet:
<tag a="b"c="d">
<tag a='b'c="d">
<tag a="b "c=" d">
<tag a="b"c='d '>
<tag a=""c=''>
<tag a="b"c='d '/>
<tag a=""b=""c=""/>
<tag a="" b=""c=""/>
<tag a=""b="" c=""/>
<tag a="x"b=""c=""/>
<tag a="" b="y"c=""/>
<tag a="b"><tag a=""b="" c="z"/></tag>
<tag a="b" c="d">
<tag a="b"/>
<tag>
</tag>
<tag/>
<tag />