Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何将preg组设置为;“非捕获”;(?:...)_Php_Regex_Preg Replace_Capturing Group_Regex Group - Fatal编程技术网

PHP如何将preg组设置为;“非捕获”;(?:...)

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致命错误:允许的内存大小…” 也许有一种解决方案会使用非匹配组来避免捕获文本? 有人能解释一下如何在匹配组上使用?:

在HTML页面中,我删除如下HTML注释

$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倍

详情:

  • -注释结束