如何从 python 中的字符串中提取特定文本和一些额外字符?
How to extract specific text and some extra characters from a string in python?
假设我有一条短信:
"background-color: #ffffe5;\n color: #000000;\n }{\n background-color: #ed7215;\n color:
#000000; background-color: #662506;\n color: #f1f1f1;"
我想提取一些包含以下内容的词典:
string1 = {background-color: #ffffe5}
string2 = {background-color: #ed7215}
string3 = {background-color: #662506}
文本通常会更长,因此有更多的背景颜色,有没有办法获得所有这些。我知道这应该用 re
完成,但我不确定如何用这个 " ".join(string.split())
我知道我可以用它来删除可以简化问题的不必要的空格,但我仍然不知道没有任何 ideas.Any 帮助会很棒。或者按顺序排列颜色的列表会很酷,但只有背景颜色。
使用re.findall
:
import re
text = '''"background-color: #ffffe5;\n color: #000000;\n }{\n background-color: #ed7215;\n color: #000000; background-color: #662506;\n color: #f1f1f1;"'''
out1 = re.findall('background-color:\s*[^;]+', text)
# OR
out2 = re.findall('background-color:\s*([^;]+)', text)
输出:
>>> out1
['background-color: #ffffe5',
'background-color: #ed7215',
'background-color: #662506']
>>> out2
['#ffffe5', '#ed7215', '#662506']
假设我有一条短信:
"background-color: #ffffe5;\n color: #000000;\n }{\n background-color: #ed7215;\n color:
#000000; background-color: #662506;\n color: #f1f1f1;"
我想提取一些包含以下内容的词典:
string1 = {background-color: #ffffe5}
string2 = {background-color: #ed7215}
string3 = {background-color: #662506}
文本通常会更长,因此有更多的背景颜色,有没有办法获得所有这些。我知道这应该用 re
完成,但我不确定如何用这个 " ".join(string.split())
我知道我可以用它来删除可以简化问题的不必要的空格,但我仍然不知道没有任何 ideas.Any 帮助会很棒。或者按顺序排列颜色的列表会很酷,但只有背景颜色。
使用re.findall
:
import re
text = '''"background-color: #ffffe5;\n color: #000000;\n }{\n background-color: #ed7215;\n color: #000000; background-color: #662506;\n color: #f1f1f1;"'''
out1 = re.findall('background-color:\s*[^;]+', text)
# OR
out2 = re.findall('background-color:\s*([^;]+)', text)
输出:
>>> out1
['background-color: #ffffe5',
'background-color: #ed7215',
'background-color: #662506']
>>> out2
['#ffffe5', '#ed7215', '#662506']