繁体   English   中英

Python 将精确字符串与模式重新匹配

[英]Python Re- match exact string with pattern

string1="block12emp"

string2="block12"

reg=re.match('^[\D]{2,6}[\d]{2}\D{3}$', string1) # returns, block12emp

上面的正则表达式工作正常

reg=re.match('^[\D]{2,6}[\d]{2}\D{3}$', string2) # returns, block12

这里,string2 的例外 output 是 Null,但正则表达式返回block12

此正则表达式将不匹配完整模式,并且仅返回字符串中匹配的内容

如何将字符串与此模式完全匹配

谢谢

所以我检查了你的模式,它似乎是有效的并且可以工作,所以我尝试在 python shell 上自己检查它,它仍然有效

>>> import re
>>>
>>>
>>> string1 = "block12emp"
>>>
>>> string2 = "block12"
>>>
>>>
>>> reg_pattern = '^[\D]{2,6}[\d]{2}\D{3}$'
>>>
>>> res1 = re.match(reg_pattern, string1)
>>> res2 = re.match(reg_pattern, string2)
>>>
>>>
>>> res1.group()
'block12emp'
>>> res2.group()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'

这可以按预期工作,因此当 re.match 找到与它返回的模式匹配的字符串时,它会返回 None

重新检查您的逻辑如何处理异常以及您返回的具体内容

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM