匹配正则表达式语句中的数字

时间:2017-12-12 14:12:34

标签: .net regex

我的目标是捕获报告的最后一页,我想通过匹配描述页码的标题来实现它。 我的报告的最后一页包含我想要匹配的以下字符串(它也可以是两位数或四位数字):

  

页数:877 of 877

我尝试使用的正则表达式是

Page:\s (\d+) of \1

但这也抓住了以下案例:

  

Page:8 of 877

我理解正则表达式是从左到右读取的,但是有没有办法捕获第二个数字877,然后将它与第一个数字匹配? (某种背面参考) 我使用.NET Framework的正则表达式引擎。

2 个答案:

答案 0 :(得分:1)

如果您将字符串结尾字符<select id="Accounts" onChange="test()"> <option value=""></option> <option value="Account1">Account1</option> <option value="Account2">Account2</option> </select> <select id="DeliveryPlaces" onChange="test()"> <option value=""></option> <option value="1">1</option> <option value="2">2</option> </select> <input id="Organisation1" type="text" />添加到正则表达式的末尾,则它只会匹配字符串末尾的$。这只会在最后一页上匹配。

https://regex101.com/r/W05R9g/1

答案 1 :(得分:1)

这是我不建议的......

^Page:\s*(\d{1})\s*of\s*\1$|^Page:\s*(\d{2})\s*of\s*\2$|^Page:\s*(\d{3})\s*of\s*\3$

然后将其扩展为您的最大数字(此为3)

我建议使用正则表达式来获取两个捕获组(第一个数字)和(最后一个数字),然后使用您正在使用的任何语言来比较它们,而不是使用正则表达式来执行此操作。