2011-01-12 7 views
0

Dies mag ein einfacher sein, aber ich kann nicht die Antwort darauf finden.Wie schreibt man einen regulären PCRE-Ausdruck, um einen String mit anderem Inhalt zu finden?

Ich habe eine Zeichenfolge in einer HTML-Datei, die ich suche:

<div class="button" onclick="document.$name.submit(); return false\">Save</div> 

wo $ name von Code generiert wird, kann so etwas sein.

Ich muss einen regulären Ausdruck von PCRE schreiben, der diese Zeichenfolge in der Datei findet, aber den $ name-Abschnitt der Zeichenfolge ignoriert.

Ich habe dies versucht:

/<div class=\"button\" document.(.+?).submit\(\); return false\">Save<\/div>/ 

Es wird die Gruppe zurück, die zu gleich, was in $ name ist. aber definiere es nicht als eine Übereinstimmung, die ich brauche.

Antwort

1

Folgendes sollte funktionieren:

/<div class="button" onclick="document\.(.+?)\.submit\(\); return false">Save<\/div>/ 

höchstwahrscheinlich Ihr Problem war, dass Sie die Klammer nach submit() zu entkommen vergessen, so dass er versucht submit; anzupassen.

+0

Dies ist eine Art, was ich suche ... aber! Dies wird eine Gruppe von allem, was in $ Name ist, zurückgeben, wird aber nicht übereinstimmen. – jazzjazzy

+0

Wenn also die Zeichenfolge 'document.buttonform.submit()' wäre, würde ich keine Übereinstimmung erhalten aber eine Gruppe mit dem Wert 'buttonform' haben. Ich benutze phpunits expectOutputRegex() welches nach einem passenden Ergebnis sucht. – jazzjazzy

+0

expectOutputRegex scheint assertRegex() intern zu verwenden, was im Grunde überprüft, ob preg_match() mehr als 0 zurückgibt, also sollte es funktionieren, aber ich habe es hier versucht und es scheint, dass php5.3.0 bei der Erkennung von ';' s in regulären Ausdrücken versagt. Versuchen . Anstatt von ; (Ich habe die Regex oben aktualisiert) – Seldaek

0

Versuchen Sie, diese

@<div class="button" onclick="document.(.*?).submit\(\); return false">Save</div>@ 
+0

Während dies wird Übereinstimmung, erwägen Sie, das Literal '.'s zu umgehen und' (. +?) 'zu verwenden – jasonbar

Verwandte Themen