2013-09-24 52 views
0

我試圖匹配一組數據,並且即使我可以正確創建正則表達式,Python也不會返回任何匹配。我想知道我是否正確地使用Python格式化正則表達式。正則表達式:Python在返回或換行後首次出現

我試圖匹配任何\ r或\ n後的日期。它可以是下列任何一項:

Date/Time Sep 12 11:13:42 

Date/Time Sep 12 11:13:42 

Date/Time 
Sep 12 11:13:42 

Date/Time 



Sep 12 11:13:42 

並採用(?<=Date/Time\s)(\r*[\w :]+)作品就任何驗證程序而言。

我輸入這個爲date = re.findall("(?<=Date/Time\s)(\r*[\w :]+)", content)但是我從來沒有得到任何匹配返回。

正則表達式格式正確。我的問題是,我的正則表達式格式不正確,直到關於Python(非法字符等)?

+0

'日期/時間\ s +(。*)'應該就夠了。 – Blender

+0

另外,你可以讀取你的輸入文件併發布'print repr(contents)'的輸出嗎? – Blender

+0

@Blender,與'Date/Time'字符串以及日期匹配。我的方法提供積極的預測。 – Signus

回答

1

但是......它已經工作:

content = """\ 
Date/Time Sep 12 11:13:42 

Date/Time Sep 12 11:13:42 

Date/Time 
Sep 12 11:13:42 

Date/Time 



Sep 12 11:13:42""" 

import re 

re.findall("(?<=Date/Time\s)(\r*[\w :]+)", content) 
#>>> ['Sep 12 11:13:42', ' Sep 12 11:13:42', 'Sep 12 11:13:42'] 

您應該考慮使用的\n代替\r,不過,拿到最後日期。甚至可以使用\s來匹配任何間距。

+0

這是我混亂的地方。我使用的任何驗證器都會將我的正則表達式與數據輸入相匹配,但是我的實際程序在運行時不會返回任何結果我也嘗試過\ n無濟於事。 – Signus

+0

然後你的程序出現了問題...... – Veedrac

+0

這就是我很好奇的事情,但是在我的腳本中所有其他正則表達式都返回數據。 – Signus

相關問題