Python 在正则表达式中处理不平衡括号

Python 在正则表达式中处理不平衡括号,python,regex,Python,Regex,我对正则表达式不是很在行。我使用下面的正则表达式来替换字符串中的特定单词,但前提是该单词没有出现在引号中 re.sub(r'("[^"]*")|%s' %word, lambda m: m.group(1) if m.group(1) else "", query) 它工作得很好。除了当query=MBA人力资源管理(斋浦尔国立大学)时,我得到以下错误 error: unbalanced parenthesis 此实例中word的值为(斋浦尔) 如何修复正则表达式以处理不平衡的括号?问题是,

我对正则表达式不是很在行。我使用下面的正则表达式来替换字符串中的特定单词,但前提是该单词没有出现在引号中

re.sub(r'("[^"]*")|%s' %word, lambda m: m.group(1) if m.group(1) else "", query)
它工作得很好。除了当
query=MBA人力资源管理(斋浦尔国立大学)
时,我得到以下错误

error: unbalanced parenthesis
此实例中word的值为(斋浦尔)


如何修复正则表达式以处理不平衡的括号?

问题是,当
word
(斋浦尔“
)时,您的正则表达式是
r'(“[^”]*”)(斋浦尔“
),但您希望它是
r'(“[^”]*”)\(斋浦尔“
。要修复此问题,您可以使用
re.escape(word)
,而不仅仅是
word

re.sub(r'("[^"]*")|%s' % re.escape(word), lambda m: m.group(1) if m.group(1) else "", query)
(见附件。)