好的,所以我有一个正则表达式,我试图用它来匹配某些 html 文件中的某个模式。这是 preg_match 语句:
preg_match('@<'.$htmlElementType.' id\s*=\s*"{{ALViewElement_'.$this->_elementId.'}}".*>[\s\S]*</'.$htmlElementType.'(>)@i', $htmlString, $newMatches, PREG_OFFSET_CAPTURE)
需要明确的是,这是试图匹配 id 为 {{ALViewElement_.*}} 的 html 元素,但它还需要以结束标记结束,例如,如果 $htmlElementType 是“section”,它将以“/部分>”。
如果我的 html 看起来像这样,其中没有其他内容,它会按预期工作:
<section id="{{ALViewElement_resume}}">
<!--{{RESUME_ADD_CHANGE_PIECE}}-->
<!--{{RESUME}}-->
</section>
问题是当我们在 html 后面有一个 section 元素时,它也有一个结束 /section>。例子:
<section id="{{ALViewElement_resume}}">
<!--{{RESUME_ADD_CHANGE_PIECE}}-->
<!--{{RESUME}}-->
</section>
<div>
</div>
<section>
HEY THIS IS ME
</section>
在这种情况下,全马赫就是上面的一切。但我希望它停止在打开我的第一个。这很重要,因为稍后在我的代码中,我需要该结束标记中最后一个 > 的位置。
有什么想法可以稍微改变这个正则表达式吗?
谢谢您的帮助!