我在python中使用以下代碼來搜索文件中的正則表達式,但它一直返回'None'。不明白它有什麼問題。 (編輯 - 添加完整的代碼)從Python中的文件搜索和打印正則表達式
def process_syslog(file_path):
with open(file_path, "r") as f:
for line in f:
link_down_match = re.search(r'Link Down on en0. (.*$)', line)
print en0_down_match.group()
link_down_match,總是版畫 '無'。我正在做以下行的RE匹配:
要匹配的字符串:鏈接在en0上。原因1(未指定)。
基本上我搜索該文件包含與「原因」是在某些情況下(1-10)
這是我正在呼叫從主(片段)的函數
不同上述多個這樣的線if current_file == 'syslog':
curr_file_path = dir_path + str(current_file)
process_syslog(curr_file_path)
這裏有什麼問題?從文件我處理
段:
Mar 25 06:33:34 ethernet: Status: Link Down on en0. Reason 1 (Unspecified).
Mar 25 06:34:07 ethernet: Status: Link Down on en1. Reason 4 (Unspecified).
Mar 25 06:43:06 ethernet: Status: Link Down on en1. Reason 4 (Unspecified).
Mar 25 06:44:16 ethernet: Status: Link Down on en1. Reason 4 (Unspecified).
Mar 25 06:53:59 ethernet: Status: Link Down on en0. Reason 1 (Unspecified).
Mar 25 06:53:59 ethernet: Status: Link Down on en1. Reason 8 (Unspecified.
Mar 25 16:17:36 ethernet: Status: Link Down on en0. Reason 1 (Unspecified).
爲什麼我需要使用分裂線,如果我需要的只是分組提取。我期望在上面的代碼中提取group1:Reason和group2:1.然後在link_down_match中存儲此值之後,我應該可以在'if'語句中使用它,例如:if link_down_match =='1':做些什麼 – 2015-03-31 14:49:54
好,那麼你可以在你的問題中添加'current_syslog'的內容。我只有一行參考,我認爲它是一個文件的內容,每行有類似的數據... – 2015-03-31 14:51:34
剛編輯的代碼。基本上我正在搜索的文件包含上面提到的多個這樣的行,在某些情況下(1-10) – 2015-03-31 15:03:44