3

我正在使用 Python 2.7,并且我有大量的字符串数据。我需要从中解析出一个特定的模式。模式如下:

November 5 - December 10
Another example:
September 23 - December 16 

我想使用正则表达式来查找此模式中的数据。那是一个字符串,后跟一个空格,然后是一个数字,然后是一个 ' - ' ,然后是一个字符串,然后是一个空格,然后是一个数字!

我知道这听起来很复杂,但有人可以帮助我!

4

1 回答 1

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)
于 2013-08-16T20:10:18.150 回答