Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 记事本++;要删除样式的正则表达式_Regex_Notepad++ - Fatal编程技术网

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

我需要从大量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 New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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。你有
我知道文档中使用了很多错误/旧的标记,但事实并非如此。只要清除它们,我就可以使用它们。