5

如何查找列表中的字符串是否包含年份(例如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'
4

2 回答 2

10

您想用于re.search()测试输入字符串中任何位置的匹配项。

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

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

这将匹配从 1000 到 2999 的任何内容。

于 2013-04-14T13:17:48.047 回答
2

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

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

r'\s[12]\d{3}\s'
于 2020-02-20T17:46:50.120 回答