在notepad ++ regex中匹配所有出现的html元素属性

时间:2013-03-07 15:08:04

标签: regex notepad++

我有一个包含数百个链接的文件:

<h3>aspnet</h3>
<a href="http://example.com/1" icon="data:image/png;base64,iwl1zecylifzn3fz9fr3l4cdjqhigcmjo9m">Ex 1</a>
<a href="http://example.com/2" icon="data:image/png;base64,ivborw0kggoaaaansuheugaaaqcayaaaaf8">Ex 2</a>
<a href="http://example.com/3" icon="data:image/png;base64,jmiaw+f2pwdohka6t+hnyfanbkwoa1olmug">Ex 3</a>

所以我想删除所有元素

icon="data:image/png;base64,ivborw0kggoaaaansuheugaaabaaaaaqcayaaaaf8..."

来自各个方面。我经历了official Notepad++ regex wiki,经过几次试验后得出了这个结论:

icon=\"[^\.]+\"

问题在于,选择超过第二个双引号并在下一个双引号处停止。为了说明,这将选择以下内容:

icon="data:image/png;base64,...jbvebich4sec9zgth1sfue1cdt...">EX 1</a> <a href="

如果我将上述正则表达式修改为,

icon=\"[^\.]+\">

然后它几乎是完美的,但它也选择了>

icon="data:image/png;base64,...jbvebich4sec9zgth1sfue1cdt...">

我正在寻找的正则表达式将选择如下:

icon="data:image/png;base64,...jbvebich4sec9zgth1sfue1cdt..."

我也尝试了以下内容,但它根本不匹配

icon=\"[^\.]+\"$

3 个答案:

答案 0 :(得分:5)

只需匹配除引号之外的任何内容,然后引用引号:

icon="[^"]+"

刚刚使用notepad ++ 6.2.2进行了测试,并确认其匹配正确。

细分:

icon="

这很明显,与文字icon="匹配。

[^"]+

这意味着匹配任何不是"的字符。在它之后添加+意味着“一次或多次。”

最后,我们匹配另一个文字"

答案 1 :(得分:1)

我不是记事本++用户。所以不知道记事本++如何使用正则表达式,但你可以尝试替换

icon=\"[^>]*(empty string)

答案 2 :(得分:0)

试试这个解决方案:
这是我只是检查是否如您所愿。
实现目标的方式:

查找内容:(icon.*")|.*?
替换为:$1