首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >忽略python正则表达式匹配中的特定字符

忽略python正则表达式匹配中的特定字符
EN

Stack Overflow用户
提问于 2020-07-07 01:28:29
回答 2查看 38关注 0票数 1

我一直在尝试从这样的字符串中提取一些值:'5美元‘,也可以获得’5美元‘,但是当前面没有任何数字的时候,忽略单词word。我一直在尝试这个正则表达式:

(\d*)(?:\s?)(?=bucks|dollars)

并在https://regex101.com/上进行测试。它给了我两个匹配,而不是一个,使用完全相同的字符串。为什么会这样呢?这就是我想要的:

匹配1:

完全匹配:5

第一组:5个

比赛2:

完全匹配:

第一组:

在第二次匹配时,它似乎都是空的。有没有办法防止我的正则表达式找到这些len 0匹配?或者我有什么办法可以处理这个问题?

EN

Stack Overflow用户

回答已采纳

发布于 2020-07-07 01:58:44

获得这些匹配是因为您匹配了可选的数字\d*和可选的空格字符\s?,其中正面的先行断言true在右侧。

要获得这两种变体,您可以使用具有非捕获组的交替|。要防止单词成为较大单词的一部分,可以添加单词边界\b

代码语言:javascript
运行
复制
\b\d+ ?(?:bucks|dollars)\b

Regex demo

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

https://stackoverflow.com/questions/62761369

复制
相关文章

相似问题

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