我有一个如下所示的列表:
list = ['Julio Cesar por inhumana (?)', '1/4/2015', '1/4/2015', '1/4/2015']
我只想要日期。我有一个看起来像这样的正则表达式:
r'\b(\d+/\d+/\d{4})\b'
但我真的不知道如何在列表中使用它。或者可以用其他方式完成
任何帮助将不胜感激
请您参考如下方法:
很简单。只需使用 re.match:
>>> import re
>>> mylist = ['Julio Cesar por inhumana (?)', '1/4/2015', '1/4/2015', '1/4/2015']
>>> dates = [x for x in mylist if re.match(r'\b(\d+/\d+/\d{4})\b', x)]
>>> dates
['1/4/2015', '1/4/2015', '1/4/2015']
re.match 只匹配字符串的开头,所以这就是您想要的。另外,我不会将列表命名为“list”——因为这是内置列表类的名称,如果您以后尝试使用 list(some_iterable),可能会伤到自己。最好不要养成这种习惯。
最后,您的正则表达式将匹配以日期开头的字符串。如果您想确保整个字符串都是您的日期,您可以将其稍微修改为 r'(\d{1,2}/\d{1,2}/\d{4})$' -- 这将确保月份和日期均为 1 位或 2 位数字,年份恰好为 4 位数字。
