gpt4 book ai didi

python - 正则表达式不能匹配多个相同类型的组

转载 作者:太空宇宙 更新时间:2023-11-03 15:44:21 35 4
gpt4 key购买 nike

我正在用 Python 玩正则表达式。我知道有大量关于此的文档。但我就是无法理解这个看似简单的例子:

关于这段代码:

import re
phoneNumRegex = re.compile(r'(\d\d\d)*')
mo = phoneNumRegex.search('My number is 415-555-4242. 423-531-5412')
print(mo.group())

我期待得到输出:

415, 555, 423, 531

但是程序只返回一个空字符串(什么都没有)。我的逻辑是指定我想要一组 3 位数字,然后 * 指定匹配这种组 0'n'次。因为我的字符串中有多个 3 位数字组,所以我希望将它们全部打印出来。我做错了什么?我也尝试使用 + 而不是 * 根据我的理解应该至少找到该组一次。如果我这样做,它只会打印第一组,而不是我期望的全部。我应该如何编写才能打印所有 3 位数字组?

最佳答案

使用re.findall

例如:

import re
phoneNumRegex = re.compile(r'(\b\d{3}\b)')
mo = phoneNumRegex.findall('My number is 415-555-4242. 423-531-5412')
print(mo)

输出:

['415', '555', '423', '531']

关于python - 正则表达式不能匹配多个相同类型的组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50967696/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com