Python 使用正则表达式仅获取指定字符之间的文本

Python 使用正则表达式仅获取指定字符之间的文本,python,regex,Python,Regex,我试图用消极和积极的表情来捕捉文本的某个区域,但我很挣扎。我不确定这是否是最好的方法 这正是我使用正则表达式表示的文本:黄金海岸地区部分多云。 我是通过网络抓取得到的,“部分混浊的”文本每天都在变化,所以我无法使用正则表达式来搜索那些确切的单词 我想检索“黄金海岸地区”和“部分多云”之后的句号之间的单词“Party cloudy” 非常感谢您的帮助。如果您知道字符串总是以黄金海岸地区开始,并以句号结束,您可以在不使用正则表达式的情况下截断字符串: s = 'Gold Coast area Par

我试图用消极和积极的表情来捕捉文本的某个区域,但我很挣扎。我不确定这是否是最好的方法

这正是我使用正则表达式表示的文本:
黄金海岸地区部分多云。

我是通过网络抓取得到的,“
部分混浊的
”文本每天都在变化,所以我无法使用正则表达式来搜索那些确切的单词

我想检索“
黄金海岸地区
”和“
部分多云
”之后的句号之间的单词“Party cloudy”


非常感谢您的帮助。

如果您知道字符串总是以
黄金海岸地区开始,并以句号结束,您可以在不使用正则表达式的情况下截断字符串:

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

/([A-Za-z ]+?) area ([A-Za-z ]+)\./
它捕获第一个捕获组中的区域和第二个捕获组中的天气。如果您只对黄金海岸地区感兴趣,则用硬编码的“黄金海岸”字符串替换第一个捕获组

作为概念证明:

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

你从网页抓取中得到了什么?就regex而言,您尝试了什么?请阅读本网站的情况,并展示您目前所做的工作。这个网站是关于解决问题的,而不是为你做的工作。如果你使用BeautifulSoup进行网页抓取,我很确定你可以使用它来查找和获取网站的特定部分。也许这会有帮助?完全同意,请展示你已经拥有的以及问题所在。然而,这真的是一个正则表达式问题吗?您知道字符串以15个字母(“黄金海岸区域”)开头,以1(“.”)结尾。因此,您搜索的子字符串是s[15:-1].strip(),对吗?请尝试
r'goldcoast area(.*)\。