2016-04-28 15 views
0

Ich habe die folgende Zeichenfolge:Extract Wert von Anführungszeichen mit regex

feature name="osp" 

ich brauche und sie in eine neue Zeichenfolge löscht Teil der Saiten zu extrahieren. Die Wortfunktion kann sich ändern und das Wort in Anführungszeichen kann sich ändern, sodass ich jede mögliche Instanz erfassen kann. Der Name = "" Teil ist immer derselbe. Das Ergebnis, das ich brauche, ist:

feature osp 

Ich muss den Namen = und Zitate aus der Zeichenfolge herausfiltern.

Ich habe dieses^\ w * \ s verwendet, um den ersten Feature-Teil zu erhalten, kann aber nicht herausfinden, wie man osp mit einem Regex aus dem String extrahiert. Ich habe hier RegEx: Grabbing values between quotation marks gesucht, kann aber keine Regex bekommen, die beides kombiniert, um das Ergebnis zu erhalten, das ich brauche. Ich arbeite in PHP, also benutze gerade preg-match. Kann mir jemand helfen?

Antwort

2

ich mit

(\w+)\s+name\s*=\s*"([^"]*) 

gehen würde, es ist ein wenig langsamer, aber es erlaubt für eine beliebige Anzahl von Leerzeichen und fängt es das erste Wort richtig ein , sogar mit Alexandrus Test.

See it work here at regex101.

Grüße

+0

Vielen Dank an alle, die alle drei Antworten beantwortet haben, scheint die beste Antwort zu sein für das, was ich suche, danke für die Hilfe! – olliejjc16

1

Probieren Sie etwas wie folgt aus:

preg_match('/(.+)name="(.+?)"/', $string, $matches); 

echo $matches[1] . $matches[2]; 
+0

(. +) Werden alle die Zeichenfolge erfassen Sie für die Faulen '?' –

+2

-Test gehen sollte, bevor kommentieren und Verhältnis Senkung ... – vuryss

+0

Versuchen Sie diesen Test 'Feature Name fasfjah fjkhas kfhajk hkask Name = "test" feature name = "test" ' –

0

eine verbesserte Version von @vuryss

preg_match('/(.*?)name="(.*?)"/ims', $string, $matches);  
echo $matches[1] . $matches[2]; 
Verwandte Themen