【发布时间】:2020-07-06 17:28:29
【问题描述】:
我一直在尝试从如下字符串中提取一些值: '5 块钱',也可以得到'5 块钱',但是当它单独出现时忽略这个词,前面没有任何数字。我一直在尝试使用这个正则表达式:
(\d*)(?:\s?)(?=bucks|dollars)
并在https://regex101.com/ 上进行测试。它给了我两个匹配而不是一个,使用相同的字符串。这是为什么?这就是我得到的:
第 1 场比赛:
完全匹配:5
第 1 组:5
第 2 场比赛:
完全匹配:
第一组:
在第二场比赛中,它似乎都是空的。有没有办法阻止我的正则表达式找到这些 len 0 匹配项?或者有什么办法可以治疗?
【问题讨论】:
-
您只想匹配数字吗?还是数字和钱加在一起?
-
数字和金钱在一起
-
您可以使用
\b\d+ ?(?:bucks|dollars)\b来同时获取它们regex101.com/r/sMwa3y/1 前瞻(?=是一个非消耗性断言。 -
@FelipeHonorato - 您的链接没有任何代码。
-
哥们,你已经完全解决了我的问题。谢谢你。将其发布为答案,以便我可以关闭此主题@Thefourthbird