首页 > 解决方案 > 找出正则表达式中的最后一个数字

问题描述

我是正则表达式的新手,我想解决以下问题。我想找出正则表达式中的最后一个数字,下一个数字应该只允许加一。

这是一个例子:

123+4这应该有效,因为最后一个数字是 3,+ 之后的下一个数字是 4(3 加 1)
123+3这不应该有效,因为最后一个数字是 3,加号之后的下一个数字也是 3

有谁知道我该如何解决这个问题?

标签: regex

解决方案


这个怎么样:

\d*(?:(?:1\+2)|(?:2\+3)|(?:3\+4)|(?:4\+5)(?:5\+6)|(?:6\+7)|(?:7\+8)|(?:8\+9))

正如在 regex101.com 上看到的那样

解释:

无需使用任何花哨的技巧,您所能做的就是对解决方案中给出的每个数字组合使用正则表达式非捕获组。非捕获组允许我们在括号中组合序列,而不会使它们成为单独的捕获组。它是这样使用的:(?:sequence here)


推荐阅读