Ich versuche nur meine Hand bei der Herstellung meiner allerersten Regex. Ich möchte ein Pseudo-HTML-Element entsprechen zu können und nützliche Informationen wie Tag-Namen extrahieren, Attribute etc .:PHP RegEx Grouping Mehrere Treffer
$string = '<testtag alpha="value" beta="xyz" gamma="abc" >';
if (preg_match('/<(\w+?)(\s\w+?\s*=\s*".*?")+\s*>/', $string, $matches)) {
print_r($matches);
}
Außer, ich bin immer:
Array ([0] => [1] => testtag [2] => gamma="abc")
Wer weiß, wie kann ich Bekomme die anderen Attribute? Was vermisse ich?
Ihre allererste Regex sollte nicht für übereinstimmenden HTML/XML sein, da dies die eine Sache ist, die Regex wirklich schlecht sind. Glauben Sie mir, sie saugen es, und Sie sollten es vermeiden, sie von Anfang an dafür zu benutzen. – Tomalak
Aber Sie müssen zugeben, es ist ein guter Weg, um ihre Grenzen zu lernen. ;) –
Wahrscheinlich, ja. ;-) Es ist einfach, mit Regex eine "alles geht" -Antwicklung zu entwickeln, die Sie glauben lässt, dass alles, was als Text * dargestellt wird, * Text ist. XML und HTML sind keine Texte, sie sind strukturierte Daten und sollten mit Datenwerkzeugen und nicht mit Textwerkzeugen verarbeitet werden. Die beste Zeit, um die Warnung zu präsentieren, ist, wenn jemand gerade mit Regex beginnt. :) – Tomalak