python - 正则表达式在python中查找特定模式

标签 python regex

<分区>

我使用的是 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/

相关文章:

python - 印加开放实验 Python

python - 在 Pandas 中选择带有startswith的列

Python正则表达式替换单个换行符并忽略两个或多个换行符的序列

Python - Tkinter - 我希望从 Entry 获取()值以在函数中使用

python - 我只需要按 'Date' 的月份和日期部分进行分组,并获取每组的最大值和最小值

ruby - 在 ruby​​ 正则表达式中匹配换行符 `\n`

regex - Golang 正则表达式与 `ReplaceAllString` 的多个匹配项

javascript - 在第一次出现时拆分字符串

JavaScript 正则表达式到 Java 正则表达式

python - 根据值替换 DataFrame 中的行