2012-12-17 20 views
-3

我試圖做的是從這些不同的可能組合匹配季和劇集數:對電視節目的Javascript正則表達式

S01E05 
S1E5 
1x05 
1x5 

在數據即時通訊感興趣的是季節號1和集數5從每個。

+2

你試過了什麼? – Cfreak

+2

這不是一個壞問題,但[你有什麼嘗試](http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

回答

4

嘗試下面的表達式,這將捕獲系列和集數沒有前導零:

^S?0*(\d+)?[xE]0*(\d+) 

目前,檢測錨定與^字符名稱的開始。如果系列名稱是字符串中的其他位置,請將其刪除。

+0

好吧,編輯它允許超過0零並正確匹配。 – chiborg

+0

這可能與它不會使表達式不必要地複雜化一樣好。這裏有一個解釋和演示:http://regex101.com/r/mW8gE4 我建議你在最後加一個錨(''')。 –

+0

@chiborg我也需要支持大寫字母E和小寫字母e,以及季節相同 –

0

這應該與所有的多線修飾你的例子啓用:

^S?\d+[Ex]\d+$ 

的缺點是,它也將匹配:

S01x5 

如果這是不能接受的,你會需要上述正則表達式的變體來檢測輸入是否以S開始。