字符串的正则表达式

我希望在 Python 3 中为 Lua 长字符串创建正则表达式。它们应该遵循以下格式:

它们应该以 "[" 开始,后跟 0 或多个 "=",再次跟着 "["。 然后跟着字符串并以 "]" 完成,然后是同样数量的"="和 "]"。

例如:

[[ hello world ]]

[===[ hello world ]===]

[====[ trick ]==] still ]===] in the ]========] string ]====]

我正在使用 Python3。

点赞
用户1974671
用户1974671

我很确定这就是你要求的:

\[(=*?)\[(.*?)\]\1\]

\[            # 匹配 '['
    (         # 第一个捕获组
        =*?   # 匹配最小数量的连续 '=' 号以使匹配有效
    )
\[            # 匹配 '['
    (         # 第二个捕获组(如果你只想要字符串值)
        .*?   # 匹配最小数量的字符以使匹配有效
    )
\]            # 匹配 ']'
    \1        # 匹配第一个捕获组的完全一样的副本(确保两边的等号数相同)
\]            # 匹配 ']'

Regex101

2015-11-08 23:16:41