如何在记事本++中删除除html标记和该HTML标记内容以外的所有内容?

时间:2018-10-10 23:37:34

标签: html notepad++

我在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>和该标签的内容

3 个答案:

答案 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>标签时,此代码才有效。