PHP如何将preg组设置为;“非捕获”;(?:...)
在HTML页面中,我删除如下HTML注释PHP如何将preg组设置为;“非捕获”;(?:...),php,regex,preg-replace,capturing-group,regex-group,Php,Regex,Preg Replace,Capturing Group,Regex Group,在HTML页面中,我删除如下HTML注释 $contentHTML = preg_replace("#(?=<!--)([\s\S]*?)-->#", "", $contentHTML); $contentHTML=preg#u replace(“#(?=#)”,“”,$contentHTML); 但是在preg\u replace的一个巨大页面上,我得到了“PHP致命错误:允许的内存大小…” 也许有一种解决方案会使用非匹配组来避免捕获文本? 有人能解释一下如何在匹配组上使用?:
$contentHTML = preg_replace("#(?=<!--)([\s\S]*?)-->#", "", $contentHTML);
$contentHTML=preg#u replace(“#(?=#)”,“”,$contentHTML);
但是在preg\u replace
的一个巨大页面上,我得到了“PHP致命错误:允许的内存大小…”
也许有一种解决方案会使用非匹配组来避免捕获文本?
有人能解释一下如何在匹配组上使用?:
或者,我如何在不使用preg\u replace的情况下在巨大的页面中抑制HTML注释?只需将正则表达式展开为
$contentHTML = preg_replace("#<!--[^-]*(?:-(?!->)[^-]*)*-->#", "", $contentHTML);
$contentHTML=preg#u replace(“##“,”,$contentHTML);
通过一个非常简短的示例,可以看到.Comapre,其步骤是我的步骤的3倍
详情:
-注释结束