我想从div中的所有jQuery“done”属性中删除4000行HTML文件。
<DIV class=menu done27="1" done26="0"
done9="1" done8="0" done7="1"
done6="0" done4="20">
应替换为:
<DIV class=menu>
在this experiment我可以用这个正则表达式来完成:
[ ^]done[0-9]+="[0-9]+"
使用Notepad ++ 5.6.8 Unicode,使用ANSI编码的文件,我将此正则表达式放在“查找内容”字段中。它只替换以空格开头的5次出现,它将错过从一行开头的2次出现。
如何构建正则表达式以删除以关键字开头的HTML元素的所有属性?
答案 0 :(得分:13)
扩展将“\ n”替换为“LINEBREAK”
非常感谢所有人及时回复。根据您的建议,这就是我所做的:
在“正则表达式”下,替换每次出现:
done[0-9]*="[0-9]*"
(在“完成”之前小心检查是否有头部空间
并且没有跟踪空间!见下文)
带有空字符串
召回和注释:
答案 1 :(得分:1)
我也喜欢Notepad ++但是regexing真的很痛苦。如果你坚持使用Notepad ++,试试这个:
done[0-9][0-9]*=\"[0-9][0-9]*\"
用空字符串(一定要放
正则表达式之前的单个空格
表达)瞧!不是很干净但很有效; o)
之后,如果你想再次使用它,你可以使用HTMLTidy函数
答案 2 :(得分:1)
一个简单的方法是:
它会在第一行以外的每一行的开头插入你的字符串。
答案 3 :(得分:0)
我担心,Notepad ++ Regex无法做到这一点
Notepad ++使用Scintilla正则表达式引擎,它基于每行,因此无法进行多行搜索/替换。
请注意,\ r和\ n永远不会匹配 因为在Scintilla,经常 表达式搜索是按行进行的 line(剥去行尾字符)。
答案 4 :(得分:0)
你几乎拥有它!不幸的是,Notepad ++中的完整解决方案必须是一个3步骤。
使用以下搜索进行正则表达式搜索/替换:\<done[0-9]+="[0-9]+"[ ]*
当然,将替换字段留空,以便它只删除匹配的所有内容。 (在Notepad ++中,对正则表达式的理解\<
表示“单词的开头”。)
选择受先前搜索/替换影响的文本部分。您不想选择整个文档,因为我们要...
删除换行符。按Ctrl-F再次调出“搜索/替换”对话框,这次选择“扩展”搜索模式,而不是“正则表达式”。根据您的文档格式,您需要搜索\n
或\r\n
。替换字段应该是空的。此外,请确保选中“在选择中”复选框。
点击“全部替换”,您就完成了!