我已经搜索了这些信息,但无法弄清楚如何正确理解正则表达式。
我有一个html文件,有多个<img>
标签。这些标记中的每一个都使用以下数据src
:/newsletter/images/light/b/NUMERICVALUE/IMAGENAME.jpg
假设NUMERICVALUE
和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
答案 0 :(得分:2)
搜索:src=\"\/newsletter\/images\/light\/b\/[^\/]*\/([^\"]*)\"
替换:src="/newsletter/images/light/b/\1"
说明:
\/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"/>