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

Posted

技术标签:

【中文标题】如何在记事本++中删除除html标签和此HTML标签内容之外的所有内容?【英文标题】:How to remove everything except html tag and content of this HTML tag in notepad++? 【发布时间】:2018-10-10 23:37:34 【问题描述】:

我在 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>

我尝试使用正则表达式: (&lt;div id=\"issue_content\"&gt;)(.*?)(&lt;\/div&gt;)(.*?) , 但是这个正则表达式只删除标签&lt;div id="issue_content"&gt;CONTENT&lt;/div&gt;和这个标签的内容

【问题讨论】:

为什么不创建一个包含该内容的新字符串,因为这就是您感兴趣的全部内容?您已经有了匹配值。 我需要删除 3000 个 html 文件中不必要的内容。 DIFFERENT CONTENT 标签中的内容不同 【参考方案1】:

这个正则表达式应该做你想做的事。确保选中 Replace 选项卡上的 . matches newline 框,并将光标放在文档的开头。

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

替换为\1

请注意,只有在您要查找的代码中没有嵌套其他 &lt;div&gt; 标记时,此代码才有效。

【讨论】:

【参考方案2】:

您可以将您的正则表达式更改为以下内容:这个想法是它匹配所有内容,但会创建一个 Match Group,其中包含您想要的字符串,您可以使用它来将所有内容替换为您的 Group:

这是正则表达式:

/[\s\S]*?(<div id=\"issue_content\">[^>]+>)[\s\S]+/

它在开始时匹配所有内容,直到你想要的字符串,然后它用你的字符串创建一个组,最后匹配之后的所有内容。

替换时,你用Group 1替换:

$1

现在你只有你的字符串了。

【讨论】:

/[\s\S]*?([^>]+>)[\s\S]+/ - 不工作 (( ( @alexbever:删除分隔符【参考方案3】:

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

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

echo $matches[1];

【讨论】:

以上是关于如何在记事本++中删除除html标签和此HTML标签内容之外的所有内容?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Notepad++ 中缩进 HTML 标签

html5都有哪些新特性,移除了那些元素?如何处理html5新标签的浏览器兼容问题?

java 移除html标签的属性

如何通过HTML改变我的chrome浏览器的标签名?

PHP从字符串中删除html标签

HTML标签书写格式是啥