点匹配而不是?Python正则表达式中的组

点匹配而不是?Python正则表达式中的组,python,regex,Python,Regex,我正在尝试编写一个正则表达式,它匹配特定类型的类似HTML的括号标记。如果标记也在HTML注释中,则该表达式应与标记匹配,而组1则与标记之间的内容匹配 为了澄清这一点,表达式应该与两者匹配 [section]诸如此类的废话[/section] 及 胡说八道 以下是我到目前为止的情况: "(?:<!--\s*)?\[section](?:\s*-->)?(.*)(?:<!--\s*)?\[/section](?:\s*-->)?" “(?:)(.*)(?:)?” 问题是

我正在尝试编写一个正则表达式,它匹配特定类型的类似HTML的括号标记。如果标记也在HTML注释中,则该表达式应与标记匹配,而组1则与标记之间的内容匹配

为了澄清这一点,表达式应该与两者匹配

[section]诸如此类的废话[/section]

胡说八道

以下是我到目前为止的情况:

"(?:<!--\s*)?\[section](?:\s*-->)?(.*)(?:<!--\s*)?\[/section](?:\s*-->)?"
“(?:)(.*)(?:)?”

问题是,组1(即
(.*)
)包含以下注释的潜在开头(即
*
之后添加
将使其“惰性”,因此它不会匹配任何额外的结束标记

(?:<!--\s*)?\[section](?:\s*-->)?(.*?)(?:<!--\s*)?\[/section](?:\s*-->)?
(?:)(.*?(:)?

(?:)(.*)(?:)?
完成了你想要做的事情吗?(只是在
*
之后添加了
,这样它就不会匹配多个结尾了。@PiMarillion将此作为一个答案,并带着一些信心发布出来,我将在唱《一千个疲惫的程序员之歌》时接受并投票。