使用Regex仅在指定字符之间获取文本

时间:2018-05-24 05:56:26

标签: python regex

我正在尝试使用消极和积极的前瞻来捕捉某个区域的文字,但我正在努力。我不确定这是否是最好的方法。

这是我使用正则表达式的确切文字:Gold Coast area Partly cloudy.

我是通过网络抓取获得的,而且是#34; Partly cloudy"文字每天都在变化,所以我无法使用正则表达式来搜索那些确切的单词。

我想找回#34;派对多云"介于" Gold Coast area" " Partly cloudy"。

之后的句号

非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

如果您知道某个字符串始终以Gold Coast area开头并以句号结尾,则可以在不使用正则表达式的情况下截断该字符串:

s = 'Gold Coast area Partly cloudy.'
new_s = s[16:-1]
print(new_s) # prints 'Partly cloudy'

答案 1 :(得分:0)

试试这个:

/([A-Za-z ]+?) area ([A-Za-z ]+)\./

它捕获第一个捕获组中的区域,捕获第二个捕获组的天气。如果您只对黄金海岸地区感兴趣,那么将第一个捕获组替换为硬编码的" Gold Coast"字符串。

作为概念证明:

import re

arr = ["Gold Coast area Partly cloudy.", "Gold Coast area clear skies.", "Some other area overcast."]
for s in arr:
    match = re.match(r"([A-Za-z ]+?) area ([A-Za-z ]+)\.", s)
    if match:
        print(match.group(1)+": "+match.group(2))

输出:

Gold Coast: Partly cloudy
Gold Coast: clear skies
Some other: overcast