寻找匹配的正则表达式并替换(最好是PHP但无关紧要)来改变它(开始和结束只是需要保留的随机文本).
在:
fkdshfks khh fdsfsk
<!--g1-->
<div class='codetop'>CODE: AutoIt</div>
<div class='geshimain'>
<!--eg1-->
<div class="autoit" style="font-family:monospace;">
<span class="kw3">msgbox</span>
</div>
<!--gc2-->
<!--bXNnYm94-->
<!--egc2-->
<!--g2-->
</div>
<!--eg2-->
fdsfdskh
Run Code Online (Sandbox Code Playgroud)
到这个OUT:
fkdshfks khh fdsfsk
<div class='codetop'>CODE: AutoIt</div>
<div class='geshimain'>
<div class="autoit" style="font-family:monospace;">
<span class="kw3">msgbox</span>
</div>
</div>
fdsfdskh
Run Code Online (Sandbox Code Playgroud)
谢谢.
Pau*_*lin 76
你只是想删除评论吗?怎么样
s/<!--[^>]*-->//g
Run Code Online (Sandbox Code Playgroud)
或稍微好一点(由提问者自己建议):
<!--(.*?)-->
Run Code Online (Sandbox Code Playgroud)
但请记住,HTML 不是常规的,所以使用正则表达式来解析它会导致你进入一个受伤的世界,当有人抛出奇怪的边缘情况时.
小智 50
preg_replace('/<!--(.*)-->/Uis', '', $html)
Run Code Online (Sandbox Code Playgroud)
此PHP代码将从$ html字符串中删除所有html注释标记.
Eug*_*scu 24
更好的版本是:
(?=<!--)([\s\S]*?)-->
Run Code Online (Sandbox Code Playgroud)
它匹配这些html评论:
<!--
multi line html comment
-->
Run Code Online (Sandbox Code Playgroud)
要么
<!-- single line html comment -->
Run Code Online (Sandbox Code Playgroud)
和什么是最重要的它匹配这样的评论(由他人所示的正则表达式等不包括这种情况):
<!-- this is my blog: <mynixworld.inf> -->
Run Code Online (Sandbox Code Playgroud)
注意
虽然从语法上来说下面的一个是html注释,但是你的浏览器可能会以某种方式解析它,因此它可能具有特殊含义.剥离这些字符串可能会破坏您的代码.
<!--[if !(IE 8) ]><!-->
Run Code Online (Sandbox Code Playgroud)
Pie*_*ren 16
不要忘记考虑条件评论
<!--(.*?)-->
Run Code Online (Sandbox Code Playgroud)
将删除它们.试试这个:
<!--[^\[](.*?)-->
Run Code Online (Sandbox Code Playgroud)
不过,这也将删除下层揭示的条件评论.
编辑:
这不会删除下层显示或下层隐藏的注释.
<!--(?!<!)[^\[>].*?-->
Run Code Online (Sandbox Code Playgroud)
啊,我做到了,
<!--(.*?)-->
Run Code Online (Sandbox Code Playgroud)