gpt4 book ai didi

python - re{ n,} 和 re{ n, }

转载 作者:行者123 更新时间:2023-11-28 22:09:41 24 4
gpt4 key购买 nike

我正在学习 Python 的正则表达式。下面有两个略有不同的 re.search() 函数。唯一的区别是我在'}'之前添加了一个空格。任何人都可以解释导致结果差异的原因吗?谢谢!

我的代码:

import re

print(re.search(r'[0-9]{2,}', '1356C4HJT'))
print(re.search(r'[0-9]{2, }', '1356C4HJT'))

结果:

<re.Match object; span=(0, 4), match='1356'>
None

最佳答案

因为量词中有空格是非法的,它会像演示中那样对待它,这个表达式,

[0-9]{2, }

例如会匹配这样的字符串:

0{2, }
1{2, }
2{2, }
3{2, }

Demo 1

一旦删除空格,它就会传递 2 个或更多数字:

222
22

Demo 2

测试

import re

regex = r"[0-9]{2, }"
test_str = """
0{2, }
1{2, }
2{2, }
3{2, }
4{2, }
5{2, }
9{2, }
222
22
"""

print(re.findall(regex, test_str))

输出

['0{2, }', '1{2, }', '2{2, }', '3{2, }', '4{2, }', '5{2, }', '9{2, }']

表达式在 regex101.com 的右上面板中进行了解释, 如果你想探索/简化/修改它,在this link ,如果愿意,您可以观察它如何与一些样本输入相匹配。

关于python - re{ n,} 和 re{ n, },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57386584/

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