使用带有特殊字符的正则表达式在python中查找匹配项

使用带有特殊字符的正则表达式在python中查找匹配项,python,regex,string,Python,Regex,String,我正在提取一个字符串,需要检查它是否遵循特定的模式 如果是,我需要将其替换为“”。我正在尝试以下代码 string1 = "<![if support]> hello" string = re.sub(re.compile("<![.*?]>"),"",string1) print(string) string1=“你好” string=re.sub(re.compile(“”,“),string1) 打印(字符串) 但我得到的输出是 <![if suppor

我正在提取一个字符串,需要检查它是否遵循特定的模式

如果是,我需要将其替换为“”。我正在尝试以下代码

string1 = "<![if support]> hello"
string = re.sub(re.compile("<![.*?]>"),"",string1)
print(string)
string1=“你好”
string=re.sub(re.compile(“”,“),string1)
打印(字符串)
但我得到的输出是

<![if support]> hello 
你好
我希望得到hello的输出。我在这里做错了什么?

[
]
在正则表达式中被视为元字符。你需要逃离他们:

In [1]: re.sub(re.compile("<!\[.*?\]>"), "", "<![if support]> hello")
Out[1]: ' hello'
[1]中的
:re.sub(re.compile(“”),“hello”)
Out[1]:“你好”


作为一个(礼节性的Wiktor Stribiżew),您可以仅转义第一个左括号,将正则表达式缩短为“”

[
]
在正则表达式中被视为元字符。你需要逃离他们:

In [1]: re.sub(re.compile("<!\[.*?\]>"), "", "<![if support]> hello")
Out[1]: ' hello'
[1]中的
:re.sub(re.compile(“”),“hello”)
Out[1]:“你好”


作为一个(礼貌的Wiktor Stribiżew),您可以只转义第一个左paren,将正则表达式缩短为“”

]
不是字符类之外的特殊正则表达式操作符
r”“
就足够了。
]
不是字符类之外的特殊正则表达式运算符<代码>r“”就足够了。