带有python正则表达式的字面括号

kru*_*ruk 6 python regex parentheses

我有一本字典(例如英语 - 克罗地亚语).它可能包含句子和短语.我正在将表单文件"english text" = "english text"转换为表单"english text" = "croatian text"并使用python regex模块来执行此操作.我正在使用的正则表达式看起来像这样(给定变量原始,这是英文文本应该翻译:

regexString = '(?<= = ")'+original+'(?=")'
Run Code Online (Sandbox Code Playgroud)

这样我就可以准确地捕获右侧引号内的英文文本,并用克罗地亚语替换它.但是,如果原始文本包含内部括号,则会出现此问题.例如:

original = 'This is a wonderland :)'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,引发错误"不平衡的括号".如果原始版本是硬编码的,我可以通过放置来解决问题

original = 'This is a wonderland :\\)'
Run Code Online (Sandbox Code Playgroud)

但是,整个文件中都有*原始*变量.
除了通过在反斜杠前面的所有括号中更改原始变量之外,有没有解决这个问题的方法?

Zer*_*eus 5

你可以re.escape用来处理这个:

regexString = '(?<= = ")' + re.escape(original) + '(?=")'
Run Code Online (Sandbox Code Playgroud)