首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >re{ n,}和re{ n,}

re{ n,}和re{ n,}
EN

Stack Overflow用户
提问于 2019-08-07 11:29:00
回答 1查看 60关注 0票数 1

我正在学习Python的Regex。下面我有两个稍有不同的re.search()函数。唯一的区别是我在'}‘前加了一个空格。谁能解释一下是什么导致了结果的差异?谢谢!

我的代码:

代码语言:javascript
运行
复制
import re

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

结果:

代码语言:javascript
运行
复制
<re.Match object; span=(0, 4), match='1356'>
None
EN

回答 1

Stack Overflow用户

发布于 2019-08-07 12:13:44

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

代码语言:javascript
运行
复制
[0-9]{2, }

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

代码语言:javascript
运行
复制
0{2, }
1{2, }
2{2, }
3{2, }

Demo 1

一旦删除了空格,它将传递2位或更多数字:

代码语言:javascript
运行
复制
222
22

Demo 2

测试

代码语言:javascript
运行
复制
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))

输出

代码语言:javascript
运行
复制
['0{2, }', '1{2, }', '2{2, }', '3{2, }', '4{2, }', '5{2, }', '9{2, }']

regex101.com的右上角面板中解释了该表达式,如果您希望探索/简化/修改它,并且在this link中,如果您愿意,您可以查看它如何与一些样本输入匹配。

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

https://stackoverflow.com/questions/57386584

复制
相关文章

相似问题

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