Python正则表达式匹配平衡括号

时间:2019-05-23 16:35:30

标签: regex python-3.x pattern-matching

我需要一个正则表达式来匹配下一行。我认为需要一些巧妙的解决方案来匹配平衡括号之间的文本。

示例行:

[link_name1](linkspec1(t1)) and [link_name2](linkspec2(t2))

表达式需要匹配,如下所示:

匹配1:

完全匹配:link_name1

group1:link_name1

group2:linkspec1(t1)

匹配2:

完全匹配:link_name2

group1:link_name2

group2:linkspec2(t2)

我在下面尝试过,但是失败了。

link_re_str = r"""
        \[(?P<link_text> .+?)\]
        \(
            (?P<link_spec>
                [^\\]*?       # The part before the first escaped character. Anything but a backslash.
                (?:           # We don't need a group for the below
                    \\[)(/\\] # Escaped character '\)' or '\(' or '\/' or '\\'
                    [^\\]*?   # more stuff after the escaped character
                )*            # Repeat for each escaped character.
            ) 
        \)"""

0 个答案:

没有答案