重新使用正则表达式组

时间:2015-07-12 15:25:04

标签: php regex

我尝试重用正则表达式组。

我有什么:

Other Stuff 
Other Stuff
Anker: 'Result1' 'Result2' 'Result3' 'Result4' 'ResultN'
Other Stuff
Other Stuff

我想要的是什么:

$aVariable = [Result1, Result2, Result3, Result4, ResultN];

我尝试过:

Anker:(?: '(.*?)')+

(相信我,很多很多其他的正则表达,但我没有得到它。)

在单行中获取多个元素的正确方法是什么?

提前致谢!

1 个答案:

答案 0 :(得分:2)

尝试以下\G基于锚点的正则表达式。

$re = "/(?:^Anker:|\\G(?!^))\\h*'([^']*)'/m";
$str = "Other Stuff \nOther Stuff\nAnker: 'Result1' 'Result2' 'Result3' 'Result4' 'ResultN'\nOther Stuff\nOther Stuff";

preg_match_all($re, $str, $matches);
print_r($matches[1]);

DEMO