【发布时间】:2017-08-05 02:05:25
【问题描述】:
以下正则表达式
moo = re.compile(r'^\d+$')
将搜索仅以数字字符开头和结尾的字符串。示例可以是11234、44332、123321321 等。
但正则表达式与 12321xyz12312 不匹配。该字符串也以数字开头和结尾,这就是我的正则表达式匹配字符串所需的全部内容!那为什么我的正则表达式不匹配这个字符串呢?
【问题讨论】:
-
"正则表达式
moo=re.compile(r'^\d+$')将搜索仅以数字字符开头和结尾的字符串。" - 不。如果你能解释你为什么这么想,我们就能解释你的误解。 -
如果你想匹配一个以数字开头和结尾的字符串,中间不关心什么,你使用
re.compile(r'^\d.*\d$') -
@cᴏʟᴅsᴘᴇᴇᴅ:除了不匹配像
'1'这样的单个数字字符串,所以如果你想匹配那些(你可能会),你需要特殊情况或使用环视断言或不使用正则表达式或其他东西。 -
@user2357112 谢谢。
r'^(?:\d.*\d)|\d$'
标签: python regex python-3.x