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(.*)\。