我正在尝试编写一个与特定类型的类似 HTML 的括号标签匹配的正则表达式。如果标签也在 HTML 注释中,这个表达式应该匹配标签,组 1 匹配标签之间的内容。
为了澄清,表达式应该同时匹配
[section]Blah blah blah[/section]
和
<!-- [section] -->Blah blah blah<!-- [/section] -->
这是我到目前为止所拥有的:
"(?:<!--\s*)?\[section](?:\s*-->)?(.*)(?:<!--\s*)?\[/section](?:\s*-->)?"
问题是第 1 组(即(.*)
)包括后续评论的潜在开始(即<!--\s*
)。?
在第二个组 1 之后删除from(?:<!--\s*)
以将其排除在外,但是如果没有 HTML 注释语法,表达式将无法匹配标签。
我如何让第 1 组排除第二条评论开始(如果有),同时仍然保持那里不会有评论开始的可能性?