我正在尝试创建一个检测单词的小程序,我有一个字符串,我希望能够提取特定的单词,这是到目前为止的代码:
import re
x = ('"weather":[{"id":801,"main":"clouds","description":"clouds","icon":"')
y = re.search(r'"main":"\w+"', str(x))
c = y.group(0)
z = re.search(r'\w+', str(c))
k = z.group(0)
print(k)
print(y)
print(z)
我希望能够检测到“主要”:'因为我想要检测的单词总是遵循这个词,我认为这是最简单的方法来提取我想要的单词。然而,每当我运行这个程序时,主要的单词都会返回给我,我已经尝试了几种方法来重新排列这些代码,但似乎没有任何工作,抱歉,如果它很明显,我是RE的新手。
答案 0 :(得分:1)
您只需在原始模式中指定一个组:
import re
x = ('"weather":[{"id":801,"main":"clouds","description":"clouds","icon":"')
y = re.search(r'"main":"(\w+)"', str(x))
c = y.group(1)
print(y)
print(c)
但是这些评论表明,如果它是json,您可能只需要json
库解析您的文本。
答案 1 :(得分:0)
要检测"main"
后面的内容,您可以尝试:
import re
x = ('"weather":[{"id":801,"main":"clouds","description":"clouds","icon":"')
final_x = re.findall('(?<="main":)\s*"\w+"', x)
输出:
['"clouds"']