首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想要查找“22”,但在Python regex.finditer中返回“20”

我想要查找“22”,但在Python regex.finditer中返回“20”
EN

Stack Overflow用户
提问于 2020-04-30 06:13:37
回答 1查看 37关注 0票数 0

我的目的是找出文档中所有与年龄相关的单词。举个例子,在句子“她二十二岁。她爱你。你永远不会知道这让我多么忧郁”,我想找二十二岁。但是regex.finditer总是返回20而不是22。

代码语言:javascript
复制
enter code here

regex_list = {}

regex_list['before_age'] = (r'age|aged|he\s*is|she\s*is|she\'s|he\'s')

regex_list["nums_as_words"] = (r'two|twenty|twenty-two')

p = r'(?i)(({before_age})\s*[a\s|an\s]?\s*({number_words}))'.format(
    before_age = regex_list['before_age'],
    number_words = regex_list["nums_as_words"]
    )

text = "She's twenty-two. And she's loving you. And you'll never know how it makes me blue"

for match in regex.finditer(p, str(text)):
    if match.group(3):
        print (match.group(3))  

回报率:20

EN

回答 1

Stack Overflow用户

发布于 2020-04-30 06:15:16

正则表达式的顺序很重要。

试一试

代码语言:javascript
复制
regex_list["nums_as_words"] = (r'two|twenty-two|twenty')

因为二十在二十二之内,所以它总是先找到它。

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

https://stackoverflow.com/questions/61512654

复制
相关文章

相似问题

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