我使用的是Python 2.7,我有很多字符串数据。我需要从中解析出一个特定的模式。模式如下:
November 5 - December 10
Another example:
September 23 - December 16
我想使用正则表达式来查找此模式中的数据。这是一个字符串,后跟一个空格,后跟一个数字,后跟一个' - ',然后是一串字符,然后是空格后跟一个数字!
我知道这听起来很复杂,但有人可以帮助我!
答案 0 :(得分:7)
你可以用一种非常简单的方式做到这一点:
import re
text = """
November 5 - December 10
September 23 - December 16
"""
matches = re.findall("\w+\s\d+\s\-\s\w+\s\d+", text)
print matches
打印:
['November 5 - December 10', 'September 23 - December 16']
但是,如果这些单词只是月份名称,则可以通过指定月份列表而不仅仅是\w+
来改进正则表达式:
months = "|".join(calendar.month_name)[1:]
matches = re.findall("{0}\s\d+\s\-\s{0}\s\d+".format(months), text)