python正則表達式出現AttributeError: 'NoneType' object has no attribute 'group'提示

環境:ubuntu

語言:python

問題:正則表達式出現AttributeError: 'NoneType' object has no attribute 'group'提示

原因:re.match()由於沒有匹配到元素,之後又調用了group()方法造成的

分析:很可能是由於正則表達式出錯造成的,尤其是使用標籤時容易出錯

解決:在使用正則表達式時使用try捕獲錯誤,一旦發現錯誤,立馬反饋,同時使用if增強檢測,當然也可以不使用try捕獲,直接使用if判斷,請參考下方代碼

代碼:

下面的正則表達式故意寫錯,正確的寫法:r"^<(?P<p1>\w*)><(?P<p2>\w*)>.*</(?P=p2)></(?P=p1)>$"

import re

file_content = "<body><h1>hahahaha</h1></body>"
judge_rule = r"^<(?P<p1>\w*)><(?P<p2>\w*)>.*</(?P=p1)></(?P=p1)>$"  # 特別注意這一條正則表達式
try:
	temp = re.match(judge_rule, file_content)
	if temp is None:  # 進一步確定錯誤類型
		print("match()的返回值爲空")
	print(temp.group())
except AttributeError:
	print("請檢查正則表達式標籤是否對應")
except Exception as result:
	print("出錯原因:", result)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章