我的html代码有许多锚和链接,例如:
<script src="/Common/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<link href="/Common/Css/UserAdmin.css" rel="stylesheet" type="text/css" />
<a href="/test.php">test</a></li>
我想把它们改成:
<script src="http://www.mydomain.com/Common/Scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
<link href="http://www.mydomain.com/Common/Css/UserAdmin.css" rel="stylesheet" type="text/css" />
<a href="http://www.mydomain.com/test.php">test</a></li>
即。在每个src和href值之前添加一个http://www.mydomain.com
,如何使用regex表达式实现这一点。附言:我使用PHP语言。
使用以下正则表达式:
(['b]*)(src|href)(['b]*=['b]*")(.+?")
并替换为:
'1'2'3http://www.mydomain.com'4
这里的主要思想是使用惰性运算符"+?"
Group1: (['b]*) 0 or more blanks ... followed by
Group2: (src|href) src or href ... followed by
Group3: (['b]*=['b]*") 0 or more blanks followed by = followed by 0 or more blanks followed by a quote ... followed by
Group4: (.+?") any group of characters until the nearest quote
然后替换为匹配Group1、Group2和Group3的内容,插入http://www.mydomain.com,则与Group4 匹配的内容
如果不需要,不要用regexp伤害自己。
$search = array('<script src="/', '<link href="/', '<a href="/');
$d = 'http://www.mydomain.com';
$replace = array('<script src="'.$d.'/', '<link href="'.$d.'/', '<a href="'.$d.'/');
str_replace($search, $replace, $s)