python检查年份是否在字符串中

Nol*_*way 2 python regex

说我有一个句子列表,其中很多包含数字(但不是全部):

mylist = [
"The current year is 2015 AD.",
"I have 2 dogs."
...
]
Run Code Online (Sandbox Code Playgroud)

我想知道列表中的哪些元素包含有效年份(例如,介于1000和3000之间)。我知道这是一个正则表达式问题,而且我发现了一些帖子(例如,帖子)可以解决检测字符串中的数字的问题,但是整整一年都没有。有任何正则表达式向导吗?

小智 7

听起来好像您正在寻找一个正则表达式,该正则表达式将找到4位数字,其中前一位数字介于1和3之间,接下来的3位数字介于0和9之间,所以我认为您正在寻找这样的东西

[1-3][0-9]{3}
Run Code Online (Sandbox Code Playgroud)

如果您想接受包含此内容的字符串,则可以这样做

.*([1-3][0-9]{3})
Run Code Online (Sandbox Code Playgroud)

  • 请注意,这也允许值3001至3999 (4认同)

Chr*_*sso 5

这是一个简单的解决方案:

import re
mylist = [] # init the list
for l in mylist:
    match = re.match(r'.*([1-3][0-9]{3})', l)
    if match is not None:
        # Then it found a match!
        print match.group(1)
Run Code Online (Sandbox Code Playgroud)

这将检查在1000和3999之间是否有4位数字