2016-04-28 129 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];