0

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

假设 theNUMERICVALUE和 the在每个属性IMAGENAME中总是不同的值。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

4

3 回答 3

2

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

解释:

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

编辑:更新以用于src=评论中提到的所有属性。

于 2012-05-16T15:04:10.603 回答
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_]为您需要的内容。

于 2012-05-16T15:05:44.447 回答
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"/>
于 2012-05-16T15:00:21.767 回答