我正在尝试在同一个正则表达式中匹配多个输入以捕获以下数字。
如果输入与第一组不匹配,那么我会遇到问题,因为所有先前的捕获组仍然被捕获,尽管它与它们的组不匹配。我相信我需要使用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)
任何想法如何解决?