【发布时间】:2012-04-16 13:41:20
【问题描述】:
我正在尝试在同一个正则表达式中匹配多个输入以捕获后面的数字。
如果输入与第一组不匹配,那么我会遇到问题,因为所有先前的捕获组仍然被捕获,尽管它与它们的组不匹配。我相信我需要使用lookaround 断言,但我不熟悉这些。
样本输入:
wordA 123456
wordA: 123456
wordA : 123456
wordA R123465
wordA: R123456
wordA : R123456
wordB R123465
WordA 具有可选的: 和R。到目前为止,我有这个:/(?:wordA :?R?(\d+)|wordB R(\d+))/i.
使用最后一个示例输入提供了以下结果:
array
0 => string 'wordB R123456' (length=13)
1 => string '' (length=0)
2 => string '123456' (length=6)
想要的结果是:
array
0 => string 'wordB R123465' (length=13)
1 => string '123456' (length=6)
任何想法如何解决?
【问题讨论】:
标签: php regex preg-match