2014-07-21 31 views
-1

以下是我目前正在使用的正則表達式代碼,並且列出了當前匹配的內容以及我無法使其匹配的內容。REGEX:如何讓我的正則表達式匹配所有下面提到的字符串?

v[\d]\.[\d]+_ABC [\w\-]+ v\d{2}\.\d - [\w\d\-, \(\)]+ \d{4}_[A-Z]{4}_20\d{2}-[01]\d-[0-3]\d\.zip 

什麼的時刻匹配:

v2.9_ABC Test v13.1 - Ga-On, 09 October 2004_ABCD_2014-07-21.zip 
v2.9_ABC Test v13.1 - Jabba, 01 October 1991_ABCD_2014-07-21.zip 
v2.9_ABC Test v13.1 - Wock, 23 August 2005, Temp() 2011_ABCD_2014-07-21.zip 

什麼不匹配的時刻:

v1.1_ABC Test v13.1 - Temp Test, 11 September 1926 _ABCD_2014-07-21.zip 
v2.9_ABC Test v13.1 - Temp, 20 March 2006 (Low)_ABCD_2014-07-21.zip 
v2.9_ABC Test v13.1 - Temp, 20 March 2006 (High)_ABCD_2014-07-21.zip 
v2.9_ABC Test v13.1 - Temp, 02 March 1987, Alternative Attn_ABCD_2014-07-21.zip 
+0

? – vks

+0

不會搜索開始「vn.n」並結束「.zip」,並允許所有內容之間的一切? – nouseforname

+0

一些提示'1926 _ABCD'有一個空格,'(低)'與'\ d {4}'('(高)'和'Attn'都不匹配)。 – sp00m

回答

2

我必須調整你的正則表達式,並用於以下同時匹配指定模式:

/v[\d]\.[\d]+_ABC [\w\-]+ v\d{2}\.\d - [\w\d\-, \(\)]*_[A-Z]{4}_20\d{2}-[01]\d-[0-3]\d\.zip 
+0

我把你的*改爲+,現在完美了,因爲我想要一個或多個而不是0或更多。 – slizorn

0

Don不知道你是否想要確切的格式匹配,但是下面的內容匹配你給出的所有輸入。它不是完全硬編碼的,而是一定的級別。準確地說是開始和結束。

pattern=re.compile(r"v\d.\d_ABC \w+ v\d+.\d - .*? \S+?\d+?-\d+?-\d+?.zip") 

硬編碼方法將涉及否則組合。

0

試試這個:

DER的太多硬編碼的DER ........是不是真的需要
v[\d]\.[\d]+_ABC [\w\-]+ v\d{2}\.\d - [\w\d\-, \\]+ [^\d]*?(\d{4})?_[A-Z]{4}_20\d{2}-[01]\d-[0-3]\d\.zip 
相關問題