<分区>
我使用的是 Python 2.7,并且有大量字符串数据。我需要从中解析出一个特定的模式。模式如下:
November 5 - December 10
Another example:
September 23 - December 16
我想使用正则表达式来查找此模式中的数据。那是一串字符,后跟一个空格,后跟一个数字,再后跟一个“-”,然后又是一串字符,然后是空格,后跟一个数字!
我知道这听起来很复杂,但有人可以帮帮我吗?
<分区>
我使用的是 Python 2.7,并且有大量字符串数据。我需要从中解析出一个特定的模式。模式如下:
November 5 - December 10
Another example:
September 23 - December 16
我想使用正则表达式来查找此模式中的数据。那是一串字符,后跟一个空格,后跟一个数字,再后跟一个“-”,然后又是一串字符,然后是空格,后跟一个数字!
我知道这听起来很复杂,但有人可以帮帮我吗?
最佳答案
你可以用一种非常简单的方式来做到这一点:
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)
关于python - 正则表达式在python中查找特定模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18281342/