REGEX:如何使我的正则表达式与下面提到的所有字符串匹配?

时间:2014-07-21 10:08:37

标签: 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

3 个答案:

答案 0 :(得分:2)

我调整了你的Regex并使用了以下两种指定模式:

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

答案 1 :(得分:0)

不知道你是否想要精确的格式匹配,但以下匹配你给出的所有输入。它不是完全硬编码,而是某种程度。准确地说是开始和结束。

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

硬编码方法将涉及其他组合。

答案 2 :(得分:0)

试试这个:

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