2017-08-01 66 views
-1

我試圖寫它下面的第一個3線(其餘的都是測試的情況下,我不希望趕上)正則表達式我怎麼讓它停止尋找

Sample text for testing: 
10:00:00+10:00/mon,thu 
10:00:00+10:00/mon-thu 
10:00:00+10:00/mon 

10:00:00+10:00/monday-thu 
10:00:00+10:00/mon-thursday 
10:00:00+10:00/mon,,,thu 
10:00:00+10:00/mon, 
10:00:00+10:00/mon+thu 
10:00:00+10:00/monthu 
10:00:00+10:00/ 
21:00:00+10:00\sat-sun 

匹配迄今爲止正則表達式我想出了

[0-9]{2}[:][0-9]{2}[:][0-9]{2}[+][0-9]{2}[:][0-9]{2}([/][a-z]{3}){1}([,-][a-z]{3})? 

但你可以看到它使比賽我想,但它也包括有尾隨字符的情況下,我不希望當有尾隨字符它不應該是一個匹配。

enter image description here

+0

你正在尋找的東西總是會有多餘的空行嗎?爲什麼不在正則表達式的末尾尋找額外的'\ n'?這會起作用嗎?或尋找空行? – idjaw

+1

@idjaw他的正則表達式一次只匹配一行。 – Barmar

+0

嗨idjaw感謝您的答覆。我想更具體一些。這些值將由人類輸入,所以他們可以從字面上放入任何東西。我希望能夠嘗試限制他們放入的內容與我的示例文本的前三種情況完全吻合 –

回答

2

添加$的正則表達式的結束。這與該行的結尾匹配,所以如果後面有任何內容,它將阻止匹配。

您還應該在開始時加入^,以便在時間之前有任何不匹配的地方。

+0

嗨Barmar我將$添加到行尾,導致我的示例文本中沒有匹配。我使用http://regexr.com/來執行此操作 –

+0

使用'm'選項,以便'$'匹配行尾而不是字符串尾。 – Barmar

+0

嘿巴爾馬,我試圖找到一些關於這個選項實際上做了什麼的文檔沒有太多的運氣https://docs.python.org/2/library/re.html#re.M。我需要了解這是做什麼,所以我知道這是正確的方法,這個正則表達式。 –