<
,(
,{
,[
中的 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习惯用法是我所寻找的领域。我需要类似“ 映射到命名组的反向引用”或“ 对应到命名组的反向引用”(我组成了这些短语)。
答案 0 :(得分:1)
您不能使用后向引用将(
与)
进行匹配。您只需要明确匹配即可。
例如,这将匹配<
和>
中的某些内容:
r'<.*>'
这将与[
和]
中的内容匹配:
r'\[.*\]'
要匹配它们中的任何一个,请使用|
,这表示或:
r'(<.*>)|({.*})|(\(.*\))|(\[.*\])'