Python 正则表达式 re.match,为什么此代码不起作用?[重复]
- 2025-03-21 09:07:00
- admin 原创
- 51
问题描述:
这是用 Python 编写的,
import re
s='1 89059809102/30589533 IronMan 30 Santa Ana Massage table / IronMan 30 Santa Ana Massage table'
pattern='s(d{11})/(d{8})'
re.match(pattern,s)
它没有返回任何内容。
我尝试去掉括号,
pattern='sd{11}/d{8}'
它仍然会回来none
。
我的问题是:
为什么 re.match 没有找到任何东西?
图案中有无括号有何区别?
解决方案 1:
re.match
从字符串的开头开始“匹配”,但有一个额外的1
。
改为使用re.search
,它将在字符串中的任何位置“搜索”。并且,对于你的情况,还会找到一些东西:
>>> re.search(pattern,s).groups()
('89059809102', '30589533')
如果删除模式中的括号,它仍将返回一个有效的_sre.SRE_Match
, 对象,但为空groups
:
>>> re.search('sd{11}/d{8}',s).groups()
()
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD