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 的异常输出为 Null,但正则表达式 returns block12

这个正则表达式不会匹配完整的模式,returns 只会匹配字符串中的内容

如何用这个模式精确匹配字符串

谢谢

所以我检查了你的模式,它似乎有效并且有效 所以我试着在 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 找到与模式匹配的字符串时 returns 否则它 returns None

重新检查你的逻辑如何处理异常以及你到底是什么return