对应括号/括号类型的正则表达式(python)

时间:2019-03-27 19:52:42

标签: python regex regex-group python-regex

括号/括号字符<({[中的

tl; dr 仅匹配相应的>一个正则表达式模式中的)}]

使用python,我想匹配相应的括号/括号类型。

例如,使用re.fullmatch将返回匹配项

<abc>
(foo bar)
{blarg}

,这些将返回匹配项

 <abc)
 (foo bar]
 {blarg>
  • 我想要一个正则表达式模式(即一个对re.fullmatch的调用),而不是几个。
  • 我不希望在一个字符串中重复使用正则表达式模式(请参阅使用|,例如<.*>|{.*}|…进行 @zvone 精炼尝试)。


总的来说,我想写一些相对简单的东西

(?<brackets>\<\[\({)outrageously complicated re pattern(?<bracket_corresponding_to_earlier_brackets_group>)


backreference to a named group的Python习惯用法是我所寻找的领域。我需要类似“ 映射到命名组的反向引用”或“ 对应到命名组的反向引用”(我组成了这些短语)。

1 个答案:

答案 0 :(得分:1)

您不能使用后向引用将()进行匹配。您只需要明确匹配即可。

例如,这将匹配<>中的某些内容:

r'<.*>'

这将与[]中的内容匹配:

r'\[.*\]'

要匹配它们中的任何一个,请使用|,这表示

r'(<.*>)|({.*})|(\(.*\))|(\[.*\])'