這是文本文件sb.txt如何使re.search()嘗試一個最好的嘗試方法
JOHN:ENGINEER:35?:
現在這一塊的代碼,試圖在上面執行一個正則表達式搜索線。
biodata1 = re.search(r'([\w\W])+?:([\w\W])+?:([\w\W])+?:',line)
現在我獲得biodata1.group一個正確的輸出(1),biodata1.group(2)和biodata1.group(3)。 「:」
但是,如果我通過刪除修改文件從最終
JOHN:ENGINEER:35?
,並再次運行該腳本,我碰到下面的錯誤這是有道理的,因爲組(3)沒有匹配成功
Traceback (most recent call last):
File "dictionary.py", line 26, in <module>
print('re.search(r([\w\W])+?:([\w\W])+?:([\w\W])+? '+biodata1.group(1)+' '+biodata1.group(2)+' '+biodata1.group(3)) # STMT1
AttributeError: 'NoneType' object has no attribute 'group'
但是組(1)和組(2)應該仍然分別匹配「N」「R」。有沒有辦法避免這個錯誤,並試圖嘗試一個最佳嘗試的方法正則表達式,所以它不會失敗,並至少打印biodata1.group(1)& biodata1.group(2)。
我試圖不讓它打印biodata1.group(3)雖然沒有工作
爲什麼不讓第三個組成爲可選? – jonrsharpe