Reputation: 1075
My html code has many anchors and links such as :
<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>
I want to change them into:
<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>
ie. add a http://www.mydomain.com
before every src and href value, how to achieve this using regex expression. PS: I use PHP language.
Upvotes: 1
Views: 191
Reputation: 43489
Use the following regexp:
([\b]*)(src|href)([\b]*=[\b]*")(.+?")
and replace with:
\1\2\3http://www.mydomain.com\4
The main idea here is to use the lazy operator "+?"
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
then replace with what has matched Group1 then Group2 then Group3, insert http://www.mydomain.com, then what has matched Group4
Upvotes: 2
Reputation: 23542
Don't hurt yourself with regexp if you don't need to.
$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)
Upvotes: 2