有多个字符串,如下所示
trunk.2013.11.13
trunk.2013.11.17
trunk.2013.12.31
trunk.2014.01.05
trunk.2014.01.07
正则表达式包括2013年12月的所有字符串将如下所示
trunk.2013.12...|trunk.201[^123]......|trunk.20[^01].......
是否有一些工具/脚本/库/ codereceipe可以帮助构建这样的正则表达式给定的日期范围?不幸的是,它必须是一个正则表达式,因为它是一些配置文件的一部分。为每个日期手动编写正则表达式是一件痛苦的事情,很难做到正确。此外,自动化工具可能会生成更短的正则表达式而不是手动编写的正则表达式。
注意:
答案 0 :(得分:0)
尝试使用这两个正则表达式
regExp = r'trunk.20 [1-9] [3-9] .12' 和
regExp = r'trunk.20 [1-9] [3-9]。[0 [1-9] | [10-12]]'
注意'trunk.20 [1-9] [3-9]。[0 [1-9] | [10-12]]'这将匹配您的所有日期,如果您需要在2013年12月之后的具体日期然后它需要改变。
>>> import re
>>> regExp = r'trunk.20[1-9][3-9].[0[1-9]|[10-12]]'
>>> srchObj = re.search(regExp,'trunk.2013.11.13')
>>> print srchObj
<_sre.SRE_Match object at 0x01AE2B80>
>>> srchObj = re.search(regExp,'trunk.2013.11.17')
>>> print srchObj
<_sre.SRE_Match object at 0x01AE2BB8>
>>> srchObj = re.search(regExp,'trunk.2013.12.31')
>>> print srchObj
<_sre.SRE_Match object at 0x01AE2B80>
>>> srchObj = re.search(regExp,'trunk.2014.01.05')
>>> print srchObj
<_sre.SRE_Match object at 0x01AE2BB8>
>>> srchObj = re.search(regExp,'trunk.2014.01.07')
>>> print srchObj
<_sre.SRE_Match object at 0x01AE2B80>
>>>
答案 1 :(得分:0)
我认为如果你必须使用正则表达式,你必须明确......
由于日期越来越多,至少需要
对于年,月,日的数字范围,您可以使用range-regex或RegEx_for_range。这可能是你正在寻找的。 p>