python重新找到可能包含括号的字符串

Joh*_*alt 6 python regex string

我试图搜索可能包含括号或其他字符的字符串,这些字符可能不会被解释为纯字符串.

def findstring(string, text):
    match = re.search(string, text)
Run Code Online (Sandbox Code Playgroud)

我不控制字符串,因为它是从另一个模块派生的.我的问题是该字符串可能包含"xyz)",这会引发一个错误,告诉我有无法匹配的括号.

我已经尝试过这个但没有成功

match = re.search(r'%s' % string, text)
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 10

您可以使用re.escape()转义字符串:

match = re.search(re.escape(string), text)
Run Code Online (Sandbox Code Playgroud)

来自docs:

返回字符串,所有非字母数字反向; 如果要匹配可能包含正则表达式元字符的任意文字字符串,这非常有用.