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
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