我有一个字符串foobar1234
。我想从中捕获以下字符串。
我为每个人编写了多个正则表达式,并按如下方式将它们组合在一起:
/(f.+r)|(b.+4)|(r1)|(a.+2)|(f.+o)/
但它只匹配并捕获第一个正则表达式,即(f。+ r)。如何捕获剩余的表达式?
答案 0 :(得分:1)
使用积极的前瞻:
(?=(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);