Python正则表达式中的字面括号

7 投票
1 回答
1483 浏览
提问于 2025-04-18 07:18

我有一个字典(比如说英语 - 克罗地亚语)。这个字典可能包含句子和短语。我正在把一个文件从 "英语文本" = "英语文本" 的格式翻译成 "英语文本" = "克罗地亚文本" 的格式,并且使用 Python 的正则表达式模块来完成这个工作。

我使用的正则表达式看起来像这样(假设变量 original 是需要翻译的英语文本):

regexString = '(?<= = ")'+original+'(?=")'

这样我就能准确地捕捉到右边引号内的英语文本,并用克罗地亚语替换它。不过,如果原始文本里面有括号,就会出现问题。例如:

original = 'This is a wonderland :)'

在这种情况下,会出现“括号不平衡”的错误。如果 original 是硬编码的,我可以通过添加以下内容来解决这个问题:

original = 'This is a wonderland :\\)'

但是,整个文件里都有很多 *original* 变量。
除了在 original 变量中的所有括号前面加上反斜杠,还有没有其他解决这个问题的方法呢?

1 个回答

5

你可以使用 re.escape 来解决这个问题:

regexString = '(?<= = ")' + re.escape(original) + '(?=")'

撰写回答