检查年份是否在字符串中(连续4位数)

时间:2013-04-14 13:14:03

标签: python list match

如何查找列表中的字符串是否包含一年(例如1999)。我想我会检查四个连续的数字,例如:[1-2][0-9][0-9][0-9]

如何针对列表片进行检查?这是我已经尝试过的

for piece in reflist:
    if "\d{4}" in piece:
        # Do something

for piece in reflist:
    if re.match('\d{4}', piece):
        print piece + '\n'

2 个答案:

答案 0 :(得分:9)

您希望使用re.search()来测试输入字符串中匹配的匹配项。

为了更精确地匹配(近期)年,您可以使用:

re.search(r'[12]\d{3}', piece)

可以匹配1000到2999之间的任何内容。

答案 1 :(得分:2)

虽然'\d{4}'r'[12]\d{3}'都将返回连续的4位数字,但它们还将返回数字较大的前4位,例如199999。

要获得像1999的OP示例那样的年份,请用\s来包装表达式,该表达式将与空白字符匹配。

r'\s[12]\d{3}\s'