我有一个正则表达式列表:
suresnes|suresne|surenes|surene
pommier|pommiers
^musique$
^(faq|aide)$
^(file )?loss( )?less$
paris
faq <<< this match twice
我的用例是每个匹配的模式都显示一个指向我的用户的链接,所以我可以有多个模式匹配。
我用一个简单的文本字符串“live in paris”/“faq”/“pom”来测试这些模式......
最简单的方法是用 a 遍历所有模式preg_match
,但我会在性能关键页面上做很多事情,所以这对我来说看起来很糟糕。
这是我尝试过的:将所有这些表达式与组名组合成一个:
preg_match("@(?P<group1>^(faq|aide|todo|paris)$)|(?P<group2>(paris)$)@im", "paris", $groups);
正如你所看到的,每个模式都是分组的:(?P<GROUPNAME>PATTERN)
它们都由一个管道分隔|
。
结果不是我所期望的,因为只返回了第一个组匹配。看起来当匹配发生时解析停止。
我想要的是所有匹配组的列表。preg_match_all
也无济于事。
谢谢!