首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex模式匹配预算编号问题

Regex模式匹配预算编号问题
EN

Stack Overflow用户
提问于 2022-10-07 07:36:05
回答 1查看 56关注 0票数 1

我有一个问题,我希望有一个人谁是更了解Regex,可以帮助我。

我试图从包含预算项目的PDF文件中提取数据。我使用这个regex模式来获得第一个数字的索引,这样我就可以将数字提取到右边。

Regex模式:

代码语言:javascript
复制
(([(]?[0-9]+[)]? )|([(]?[0-9]+[)]?)|(- )|(-))+$

项目:“现代化和改进(注9) 260 (180) 640 -155”

这对99%的行项目很好,除了这个我遇到的。问题是模式与文本部分中的‘9’匹配。

这个Regex模式是否可以说,如果有括号,内部必须只包含数字?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-07 07:42:56

可以重复所有可能的选项,直到字符串结束为止:

代码语言:javascript
复制
(?:\(\d+\)|\d+(?:\s*-\s*\d+)?)(?:\s+(?:\(\d+\)|\d+(?:\s*-\s*\d+)?))*$

解释

  • (?:非捕获群
    • \(\d+\)在圆括号之间匹配1+数字
    • |
    • \d+(?:\s*-\s*\d+)?匹配1+数字,并可选择匹配-和1+数字。

  • )关闭非捕获组
  • (?:非捕获组作为一个整体重复
    • \s+匹配1+空格字符
    • (?:\(\d+\)|\d+(?:\s*-\s*\d+)?)与第一种模式相同

  • )*关闭非捕获组并可选择地重复它
  • 字符串的$末端

Regex演示

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73983843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档