Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RegEx替换IMG src属性_Regex_Delphi_Delphi 7 - Fatal编程技术网

RegEx替换IMG src属性

RegEx替换IMG src属性,regex,delphi,delphi-7,Regex,Delphi,Delphi 7,我有一个var baseURL我知道是:baseURL=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:\

我有一个
var baseURL
我知道是:
baseURL=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">
或者,如果存在alt属性(或其他。属性的顺序可能会有所不同):


如何匹配
? 你知道什么正则表达式(或其他方法)可以在这里提供帮助吗

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

您可以这样做

正则表达式:
(

替换为:
$1src=“

替换
()

$1$3

编辑

希望这能奏效

替换
()


有了
$1$3$4$6

我总是很惊讶你们RegEx人能构建多么复杂的模式+1它几乎可以工作!但结果是(对于第一个/和第三个IMG):
src=“root\foo\bla.gif”
(反斜杠),我需要
root/foo/bla.gif”
(斜杠)如果路径已经包含
root
,例如
c:\whatever\root\mybasedir\root\foo\bla.gif
,那么应该考虑哪个根来开始路径?mybasedir后面的一个?mybasedir后面的一个是“root”。这是正确的,但路径可能已经包含“root”(如我的注释所示)-因此,在这种情况下,$3将匹配
root\mybasedir\root\foo\bla.gif
。我总是很惊讶你的RegEx人可以构建什么复杂的模式+1我仍然需要将
root\foo\bla.gif
替换为
root/foo/bla.gif
我如何匹配
c:.whather.mybasedir.
?我已经将你的RE改为
(并在
$2
上使用回调将“\”替换为“/”。在这样的时刻总是值得咨询@bobince:@DavidHeffernan,这很有趣:我如何在HTML上使用XML解析器?(不是XHTML)嗯,你需要一个HTML解析器来完成这项工作。当然,正则表达式可以做你需要做的事情。顺便说一句,今天我碰巧穿着我的Stack Overflow T恤,上面有bobince著名答案的文本。
<IMG src="root/foo/bla.gif">
<IMG alt="foo" src="root/foo/bla.gif">