2016-04-28 126 views
0

我有以下字符串:獲取價值與正則表達式

feature name="osp" 

我需要提取出字符串的一部分,並把它們放入一個新的字符串。單詞功能可以更改,引號內的單詞可以更改,因此我需要能夠捕捉任何可能的實例。名稱=「」部分總是相同的。我需要的結果是:

feature osp 

我需要從字符串中過濾出name =和引號。

我已經使用這個^ \ w * \ s來獲得第一個功能部件,但無法弄清楚如何使用正則表達式從字符串中提取osp。我一直在尋找這裏RegEx: Grabbing values between quotation marks,但不能得到一個正則表達式,它們結合起來得到我需要的結果。我現在在使用preg-match在PHP中工作。有人能幫忙嗎?

回答

2

的改進版本我與

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

走這有點慢,但它可以讓對於任意數量的空間它會正確捕獲第一個單詞,即使是亞歷山德魯的測試。

See it work here at regex101

問候

+0

感謝大家誰回答下面的所有三個答案似乎工作,這似乎是最合適的答案,我正在尋找感謝您的幫助! – olliejjc16

1

嘗試類似的東西:

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

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

(+)將捕捉所有你應該去懶惰'?' –

+2

測試的字符串時,它的評論和降低比前... – vuryss

+0

你可以做個試驗 '功能名稱fasfjah fjkhas kfhajk hkask名=「test」feature name =「test」' –

0

@vuryss

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