不匹配的转义括号

Unmatch escaped braces

我可以使用哪个正则表达式来查找所有 },同时排除转义的 \}? IE。我如何获得唯一匹配项:

{Hello \} world}
               ^

您可以试试下面的模式:

[^\](?P<bracket>})

请注意,这将 select 前面没有 \ 的所有 },但任何其他字符都将被 select 编辑。您可以尝试 .group 函数,将 bracket 作为 select 括号的参数。

为了更好地理解,请查看 this link

更新

就个人而言,我更喜欢绿色的答案,因为它 select 是所需的括号。

以下模式应该可以实现您的目标:

(?<!\)\}

您要找的模式是(?<!...):

Matches if the current position in the string is not preceded by a match for .... This is called a negative lookbehind assertion.

与 Amirhossein Kiani 的建议相反,匹配不包括前面的字符,而只包括右括号。举例说明:

{Hello \} world}
               ^ with negative lookbehind
{Hello \} world}
              ^^ with Amirhossein Kiani's suggestion

注意:在 Python 中使用正则表达式时,请研究 the documentation。许多像这样的简单问题是可以避免的。