如何匹配并捕获字符串开头的所有ORed正则表达式
问题描述:
我有一个字符串foobar1234
。我想从中捕获下列字符串。如何匹配并捕获字符串开头的所有ORed正则表达式
- foobar的
- bar1234
- R1
- AR12
- 富
我已经在一起写多个正则表达式为每相或它们如下:
/(f.+r)|(b.+4)|(r1)|(a.+2)|(f.+o)/
但它只匹配并捕获第一个正则表达式,即(f。+ r)。我如何捕获剩余的表情?
答
用积极前瞻:
(?=(f.+r)|(b.+4)|(r1)|(a.+2))
PHP:
$str = 'foobar1234';
preg_match_all('/(?=(?|(f.+r)|(b.+4)|(r1)|(a.+2)))/', $str, $matches);
print_r($matches);
+0
谢谢。它主要解决,但我有另一个案件,它不起作用。我已经更新了这个问题以反映我的需求。 – Soumith
我使用preg_match_all但问题是关于每个或运算表达式从字符串的开头匹配。 – Soumith