用于替换的Notepad ++中的正则表达式

时间:2012-05-16 14:56:51

标签: html regex notepad++

我已经搜索了这些信息,但无法弄清楚如何正确理解正则表达式。 我有一个html文件,有多个<img>标签。这些标记中的每一个都使用以下数据src/newsletter/images/light/b/NUMERICVALUE/IMAGENAME.jpg

假设NUMERICVALUEIMAGENAME在每个src属性中的值始终不同。

我需要从每个网址中删除/NUMERICVALUE。我怎么想这样做?

感谢您的任何建议。

以下是一个示例列表:

  

/newsletter/images/light/b/617359405/lf-header.jpg   /newsletter/images/light/b/617359406/up-logo.jpg   /newsletter/images/light/b/617359407/logo-header.jpg

3 个答案:

答案 0 :(得分:2)

搜索:src=\"\/newsletter\/images\/light\/b\/[^\/]*\/([^\"]*)\"
替换:src="/newsletter/images/light/b/\1"

说明:

  • 定义完整的URI:\/newsletter\/images\/light\/b\/[^\/]*\/([^\"]*)
  • 这将找到没有/斜杠[^\/]*
  • 的任何内容
  • 这会找到没有“引用([^\"]*)
  • 的任何内容
  • ()告诉正则表达式引擎捕获其内容
  • 替换\1强制正则表达式引擎在此处插入捕获1

修改:已更新,可用于评论中提及的所有src=属性。

答案 1 :(得分:1)

我猜NUMERICVALUE是一个实际的数值,所以这是一个简单的解决方案:

Find what: /newsletter/images/light/b/\d+/([a-zA-Z0-9_]+).jpg
Replace with: /newsletter/images/light/b/\1.jpg

[a-zA-Z0-9_]的内容更改为您需要的内容。

答案 2 :(得分:0)

这与编程无关,但无论如何:

Find what: (<img src=.*/)\d+/
Replace with: \1

输入:

<img src="/newsletter/images/light/b/654/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/5752/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/78697345/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/7896789/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/45/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/8/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/4567837/IMAGENAME.jpg"/>

输出:

<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>
<img src="/newsletter/images/light/b/IMAGENAME.jpg"/>