Regex 记事本++;要删除样式的正则表达式
我需要从大量html页面中删除一些标记。 最近我在记事本中发现了regex选项++ 但是。。即使在谷歌搜索了几个小时后,我似乎也没弄对。 我需要什么 例如:Regex 记事本++;要删除样式的正则表达式,regex,notepad++,Regex,Notepad++,我需要从大量html页面中删除一些标记。 最近我在记事本中发现了regex选项++ 但是。。即使在谷歌搜索了几个小时后,我似乎也没弄对。 我需要什么 例如: <p class=MsoNormal style='margin-left:19.85pt;text-indent:-19.85pt'><spanlang=NL style='font-size:11.0pt;font-family:Symbol'>·<span style='font:7.0pt "Times
<p class=MsoNormal style='margin-left:19.85pt;text-indent:-19.85pt'><spanlang=NL style='font-size:11.0pt;font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'> </span></span><span lang=NL style='font-size:9.0pt;font-family:"Arial","sans-serif"'>zware uitvoering met doorzichtige vulruimte;</span></p>
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
doc.DocumentNode.Descendants()
.Where(n => n.Name == "script" || n.Name == "style")
.ToList()
.ForEach(n => n.Remove());
·zware uitvoering met doorzichtige vulruimte
我需要删除所有关于样式、类和id的内容。所以我只需要有干净的标签,没有其他任何东西
有人能帮我吗
问候
编辑
通过pastebin检查整个文件:如果您提供的样本代表了您需要处理的内容,那么以下快速而肮脏的解决方案将起作用:
Find what: [a-z]+='[^']*'
Replace with:
Find what: [a-z]+=[a-zA-Z]*
Replace with:
您必须先运行第一个来获取style='…'
属性,然后需要运行第二个来获取class='…'
和lang='…'
有很好的理由解释为什么其他的海报说不要试图用这种方式解析HTML。由于regex通常无法处理HTML的所有奇妙奇怪之处,因此您最终会遇到各种各样的麻烦。如果您提供的示例能够代表您需要处理的内容,那么以下快速而肮脏的解决方案将起作用:
Find what: [a-z]+='[^']*'
Replace with:
Find what: [a-z]+=[a-zA-Z]*
Replace with:
您必须先运行第一个来获取style='…'
属性,然后需要运行第二个来获取class='…'
和lang='…'
有很好的理由解释为什么其他的海报说不要试图用这种方式解析HTML。由于正则表达式通常无法处理HTML的所有奇妙奇怪之处,因此您最终会遇到各种各样的麻烦。我的建议如下
正如我在示例文本中看到的,您只有需要处理的“p”和“span”标记。很明显,您希望删除其中的所有样式。在这种情况下,您可以考虑删除这些标记中的所有内容,使它们简单地< P>或。
我不知道记事本+,但一个简单的C程序可以很快完成这项工作。我的建议如下
正如我在示例文本中看到的,您只有需要处理的“p”和“span”标记。很明显,您希望删除其中的所有样式。在这种情况下,您可以考虑删除这些标记中的所有内容,使它们简单地< P>或。
我不知道记事本+,但一个简单的C程序可以很快完成这项工作。假设
假设如果你不介意做一点编程:HTMLAgilityPack可以很容易地从xml/html中删除脚本/样式/内容
例如:
<p class=MsoNormal style='margin-left:19.85pt;text-indent:-19.85pt'><spanlang=NL style='font-size:11.0pt;font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'> </span></span><span lang=NL style='font-size:9.0pt;font-family:"Arial","sans-serif"'>zware uitvoering met doorzichtige vulruimte;</span></p>
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
doc.DocumentNode.Descendants()
.Where(n => n.Name == "script" || n.Name == "style")
.ToList()
.ForEach(n => n.Remove());
如果您不介意做一点编程的话:HTMLAgilityPack可以很容易地从xml/html中删除脚本/样式/wathever
例如:
<p class=MsoNormal style='margin-left:19.85pt;text-indent:-19.85pt'><spanlang=NL style='font-size:11.0pt;font-family:Symbol'>·<span style='font:7.0pt "Times New Roman"'> </span></span><span lang=NL style='font-size:9.0pt;font-family:"Arial","sans-serif"'>zware uitvoering met doorzichtige vulruimte;</span></p>
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
doc.DocumentNode.Descendants()
.Where(n => n.Name == "script" || n.Name == "style")
.ToList()
.ForEach(n => n.Remove());
我认为此模式将删除“p”和“span”标记中的所有样式:
((?我认为此模式将删除“p”和“span”标记中的所有样式:
((?不要使用正则表达式解析HTML:更正:
当涉及嵌套在其内部的标记时,不要使用正则表达式解析HTML您有我知道文档中使用了很多错误/旧标记,但事实并非如此。只需清除它们,我就可以使用它们。不要使用正则表达式解析HTML:更正:
不要当涉及嵌套在其内部的标记时,不要使用正则表达式解析HTML。你有我知道文档中使用了很多错误/旧的标记,但事实并非如此。只要清除它们,我就可以使用它们。