点匹配而不是?Python正则表达式中的组
我正在尝试编写一个正则表达式,它匹配特定类型的类似HTML的括号标记。如果标记也在HTML注释中,则该表达式应与标记匹配,而组1则与标记之间的内容匹配 为了澄清这一点,表达式应该与两者匹配点匹配而不是?Python正则表达式中的组,python,regex,Python,Regex,我正在尝试编写一个正则表达式,它匹配特定类型的类似HTML的括号标记。如果标记也在HTML注释中,则该表达式应与标记匹配,而组1则与标记之间的内容匹配 为了澄清这一点,表达式应该与两者匹配 [section]诸如此类的废话[/section] 及 胡说八道 以下是我到目前为止的情况: "(?:<!--\s*)?\[section](?:\s*-->)?(.*)(?:<!--\s*)?\[/section](?:\s*-->)?" “(?:)(.*)(?:)?” 问题是
[section]诸如此类的废话[/section]
及
胡说八道
以下是我到目前为止的情况:
"(?:<!--\s*)?\[section](?:\s*-->)?(.*)(?:<!--\s*)?\[/section](?:\s*-->)?"
“(?:)(.*)(?:)?”
问题是,组1(即
(.*)
)包含以下注释的潜在开头(即在*
之后添加?
将使其“惰性”,因此它不会匹配任何额外的结束标记
(?:<!--\s*)?\[section](?:\s*-->)?(.*?)(?:<!--\s*)?\[/section](?:\s*-->)?
(?:)(.*?(:)?
(?:)(.*)(?:)?
完成了你想要做的事情吗?(只是在*
之后添加了?
,这样它就不会匹配多个结尾了。@PiMarillion将此作为一个答案,并带着一些信心发布出来,我将在唱《一千个疲惫的程序员之歌》时接受并投票。