Regex:Alternatives在模式末尾断言$



目前我正在研究Regex模式,当断言"最后,它造成了一些问题,无法抓住任何东西。当我把它插入regex101时,它表明它应该可以工作并获取我的样本数据,然而,当我自己测试它时,我没有运气。所以我只是好奇是否有一个替代的解决方案来声明我的正则表达式模式的结束。我当前的示例模式如下。

^W*((?i)Test(?-i))W*d{2}[-]d{2}[-]d{5}$

使用regex测试仪表明它应该获取下面的值。

Test 99-99-32123

然而,当尝试测试自己时,当在末尾声明$时,它不会选择任何数据。不过,当我删除$时,它会获取上面的测试数据。不过,我还是想宣布结束,以消除它获取假阳性的机会。所以我很好奇,是否有人看到我正在做的事情有问题,或者他们可以提供任何替代方案。谢谢

感谢Wiktor的推荐,将代码更改为以下代码就成功了。

^W*((?i)Test(?-i))W*d{2}[-]d{2}[-]d{5}r?$

通过使用r?$而不是简单地断言$,它解决了这个问题。

最新更新