我正在尝试删除以下内容;
输入:
[color=00ff08]100[/color](3.0/3.0)
在给定=00ff08
的情况下,color
将会发生变化,因此该变量必须是可变的。
输出:
100(3.0/3.0)
基本上,我想从[color=*****]
中删除[/color]
和string
。
谢谢,我对regex
感到非常震惊。也许我应该买一本书。
答案 0 :(得分:1)
使用re.sub
演示:
import re
s = """INPUT [color=00ff08]100[/color](3.0/3.0)"""
text = re.sub("\[color=.*?\]", "", s)
text = re.sub("\[/color\]", "", text)
print(text)
答案 1 :(得分:0)
re.sub(r'(.*)'
r'\[color=[^\]]*\]'
r'([^\[]*)'
r'\[/color\]'
r'(.*)', r'\1\2\3', my_string)
这会将相关部分分成几组,忽略其余部分,然后将结果重新缝合在一起。
这样做不会掩盖输入中的问题。如果您想要一个更强大的解决方案(对于稍微错误的输入也可以正常工作),请查看@Rakesh的答案。他还可以用于INPUT 100[/color][/color](3.0/3.0)
等输入。
答案 2 :(得分:0)
以下内容适用于所有标签:
a = "[color=00ff08]100[/color](3.0/3.0)"
re.sub("\\[[^]]*]", "", a)
输出:
'100(3.0/3.0)'