我在Notepad ++中打开HTML页面。
html页面上有很多东西,但尤其是这个标记:
<div id="issue_content">CONTENT</div>
我想从html文件中删除所有内容,但 该标签及其内容:
<div id="issue_content">CONTENT</div>
文件示例:
<p>ewrfefsd</p>
<div id="issue_content">CONTENT</div>
<p>ewrfefsd</p>
</html>
删除后,文件内容应如下所示:
<div id="issue_content">CONTENT</div>
我尝试使用正则表达式:
(<div id=\"issue_content\">)(.*?)(<\/div>)(.*?)
,
但是此正则表达式仅删除标签<div id="issue_content">CONTENT</div>
和该标签的内容
答案 0 :(得分:0)
您可以将正则表达式更改为以下内容:想法是,它匹配所有内容,但会创建一个Match
Group
,其中包含所需的字符串,可用于将所有内容替换为{ {1}}:
这是正则表达式:
Group
它在开始时将所有内容匹配到您想要的字符串,然后使用您的字符串创建一个Group,最后匹配之后的所有内容。
替换时,请替换为第1组:
/[\s\S]*?(<div id=\"issue_content\">[^>]+>)[\s\S]+/
现在只有字符串了。
答案 1 :(得分:0)
尝试一下,其中$str
是您的HTML内容变量。
preg_match('/<div id="issue_content">(.*)<\/div>/i', $str, $matches);
echo $matches[1];
答案 2 :(得分:0)
此正则表达式应该执行您想要的操作。确保选中. matches newline
标签上的Replace
框,然后将光标定位在文档的开头。
^.*?(<div[^>]*id="issue_content">.*?<\/div>).*$
替换为\1
。
请注意,只有当您要查找的标签中没有嵌套其他<div>
标签时,此代码才有效。