Ich habe den folgenden regulären Ausdruck von diesem Beitrag (Regular expression for extracting tag attributes).Wie kann ich den TAG-Namen und Attribute UND Werte dieser Attribute mit einem regulären Ausdruck auswählen?
(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?
Ich habe den folgenden PHP-Code erstellt und es funktioniert gut. Ich bekomme [id = 'gridview1' und 'id' und 'gridview1'] von der Funktion preg_match_all().
$regexp = '/(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?/';
$text = '<asp:gridview id=\'gridview1\' />';
$matches = null;
preg_match_all($regexp, $text, $matches);
print_r($matches);
Wie soll der reguläre Ausdruck auch ‚asp‘ und ‚gridview‘ geändert werden, zurückzukehren? (oder 'Foo' und 'Bar', wenn ich verwenden:
< Foo: Bar/>
Bitte benutzen Sie statt regexp mit SimpleXML in Betracht ziehen? –
"Manche Leute denken, wenn sie mit einem Problem konfrontiert werden:" Ich weiß, ich werde reguläre Ausdrücke verwenden. "Jetzt haben sie zwei Probleme." Wenn Sie mehr als die einfachste HTML-Analyse benötigen, verwenden Sie einen XML-Parser. –
In der anderen Frage versuchten mehrere Leute Ihnen zu sagen, dass Sie nicht versuchen sollten, nicht reguläre Sprachen mit einem regulären Ausdruck zu analysieren. Warum benutzt du nicht einfach einen ihrer Vorschläge, wo alles, was du fragst, einfach wird? – Svante