我有以下字符串:
feature name="osp"
我需要提取部分字符串,并将它们放入一个新字符串中。单词功能可以更改,引号内的单词也可以更改,所以我需要能够捕获任何可能的实例。name="部分始终相同。我需要的结果是:
feature osp
我需要过滤掉字符串中的name=和引号。
我用这个^''w*''s来获得第一个功能部分,但不知道如何使用正则表达式从字符串中提取osp。我一直在看RegEx:在引号之间抓取值,但无法获得将两者结合在一起的RegEx来获得我需要的结果。我在PHP中工作,所以目前正在使用preg-match。有人能帮忙吗?
我会选择
('w+)'s+name's*='s*"([^"]*)
它稍微慢一点,但它允许任意数量的空格,即使使用Alexandru的测试,它也能正确地捕获第一个单词。
在regex101中查看它的工作原理。
问候
试试这样的东西:
preg_match('/(.+)name="(.+?)"/', $string, $matches);
echo $matches[1] . $matches[2];
@vuryss 的改进版本
preg_match('/(.*?)name="(.*?)"/ims', $string, $matches);
echo $matches[1] . $matches[2];