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

如何在记事本++中删除除html标记和此html标记内容以外的所有内容?,html,notepad++,Html,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&

我用记事本++打开一个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>
我尝试使用正则表达式: .*?.*? ,
但是此正则表达式仅删除标记内容和此标记的内容。您可以将正则表达式更改为以下内容:其思想是它匹配所有内容,但创建一个匹配组,其中包含所需字符串,您可以使用该组替换所有内容:

这是正则表达式:

/[\s\S]*?(<div id=\"issue_content\">[^>]+>)[\s\S]+/
现在您只有字符串。

试试这个,其中$str是您的HTML内容变量

preg_match('/<div id="issue_content">(.*)<\/div>/i', $str, $matches);

echo $matches[1];

这个正则表达式应该做你想做的事情。你一定要检查一下房间。匹配“替换”选项卡上的换行符框,并将光标定位在文档的开头

^.*?(<div[^>]*id="issue_content">.*?<\/div>).*$
替换为\1


请注意,只有在您要查找的标记中没有嵌套其他标记时,此代码才会起作用。

既然您只对这些内容感兴趣,为什么不使用这些内容创建一个新字符串呢?你已经有了匹配值。我需要删除3000个html文件中不必要的内容。不同内容标记中的内容不同/[\s\s]*?[^>]+>[\s\s]+/-不工作@alexbever:删除分隔符
^.*?(<div[^>]*id="issue_content">.*?<\/div>).*$