RegEx替换IMG src属性

时间:2013-01-14 10:49:00

标签: regex delphi delphi-7

我知道的是var baseURLbaseURL = c:\whatever\mybasedir\
我有一个HTML源代码,可能包含:

<IMG alt="foo" src="file://c:\whatever\mybasedir\root\foo\bla.gif">
or/and:
<IMG alt="foo" src="file://c:/whatever/mybasedir/root/foo/bla.gif">
or/and:
<IMG src="c:\whatever\mybasedir\root\foo\bla.gif">
or/and: 
<IMG src="c:\whatever\mybasedir/root/foo/bla.gif">

我需要替换所有src标记,以便结果路径是相对于baseURL的Unix样式:

<IMG src="root/foo/bla.gif">

或者如果有alt属性(或其他属性的顺序可能会有所不同):

<IMG alt="foo" src="root/foo/bla.gif">

如何匹配<IMG * src="*" *>? 任何想法RegEx(或其他方法)可以帮助吗?

(我不能使用DOM来完成这项工作,因为IE8 / 9 DOM首先导致了这种情况 - 自动将<base href>添加到所有相关的src标签中)

2 个答案:

答案 0 :(得分:4)

你可以做到

正则表达式:(<IMG[^>]*)src="[^"]*c:.whatever.mybasedir.

替换为:$1src="

答案 1 :(得分:3)

替换(<IMG.*src=")(.*[/\\])(root[/\\].*?".*>)

$1$3

修改

希望这会起作用

替换(<IMG.*src=")(.*[/\\]mybasedir[/\\])(root)(([/\\][^/\\]+)*)(".*>)

$1$3$4$6