使用Regex只获取指定字符之间的文本

2024-05-16 19:38:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着用正面和负面的表情来捕捉文本的某个区域,但我很努力。我不确定这是不是最好的办法

这就是我使用regex的确切文本:Gold Coast area Partly cloudy.

我是从网页抓取得到的,“Partly cloudy”文本每天都在变化,所以我不能使用regex来搜索那些确切的单词

我想检索“Gold Coast area”和“Partly cloudy”后的句号之间的单词“Party cloudy”

非常感谢你的帮助


Tags: 文本区域网页partyarea单词表情regex
2条回答

试试这个:

/([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

如果您知道字符串总是以Gold Coast area开头并以句号结尾,那么您可以不使用regex截断字符串:

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

相关问题 更多 >