我正在学习Python的Regex。下面我有两个稍有不同的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发布于 2019-08-07 12:13:44
因为在量词中有空格是非法的,它会像在演示中一样对待它,这个表达式,
[0-9]{2, }将匹配例如这样的字符串:
0{2, }
1{2, }
2{2, }
3{2, }一旦删除了空格,它将传递2位或更多数字:
222
22测试
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中,如果您愿意,您可以查看它如何与一些样本输入匹配。
https://stackoverflow.com/questions/57386584
复制相似问题