regex - 找出正则表达式中的最后一个数字
问题描述
我是正则表达式的新手,我想解决以下问题。我想找出正则表达式中的最后一个数字,下一个数字应该只允许加一。
这是一个例子:
123+4
这应该有效,因为最后一个数字是 3,+ 之后的下一个数字是 4(3 加 1)
123+3
这不应该有效,因为最后一个数字是 3,加号之后的下一个数字也是 3
有谁知道我该如何解决这个问题?
解决方案
这个怎么样:
\d*(?:(?:1\+2)|(?:2\+3)|(?:3\+4)|(?:4\+5)(?:5\+6)|(?:6\+7)|(?:7\+8)|(?:8\+9))
解释:
无需使用任何花哨的技巧,您所能做的就是对解决方案中给出的每个数字组合使用正则表达式非捕获组。非捕获组允许我们在括号中组合序列,而不会使它们成为单独的捕获组。它是这样使用的:(?:sequence here)
推荐阅读
- java - Spring/Java11 - 由于缺少 ServletWebServerFactory bean,无法启动 ServletWebServerApplicationContext
- gitlab - GitLab:所选阶段不存在
- .net-core - 用于协调本地和网络集群的最佳 .Net Actor/Process 框架
- artifactory - 使用 Xray Report API 获取报告 pdf
- python - 一个列表未正确保存在另一个、Python、networkx 中
- javascript - 生成 SHA256 哈希的等效 JavaScript 代码
- java - Tomcat 9 JMX RMI 认证漏洞
- javascript - 如何从包含链接文本的单元格列中提取 url,其中包含 Google 表格中的数值?
- python - 尽管指定了路径,但 Conda 不会在本地安装 pip
- python - 天赋 PermissionError:[Errno 13] 权限被拒绝:'/root/.cache'