我有多个包含如下链接的字符串:
<A HREF="http://www.testings2">testings2</A>
<A HREF="http://www.blabla">blabla</A>
<A HREF="http://www.gowick">gowick</A>
我想使用在href中获取uri的正则表达式模式。
我可以这样做:
/".*?"/
然后“”会出现。有没有办法在不使用preg_replace函数的情况下将uri置于HREF =“”内?
谢谢!
答案 0 :(得分:3)
preg_match_all('/href="([^"]+)/i', $str, $matches);
var_dump($matches);
答案 1 :(得分:0)
$str=<<<EOF
<A href="http://
www.testings2">testings2</A> blah
<A HrEF=
"http://www.blabla">blabla</A> blah
<A HREF="http://www.gowick">gowick</A>
<A
HREF="http://www.testing3">testing3</A>
<a class="navigation" id="selected" href="http://somewhere.com"><xsl:value-of
select="title" /></a>
EOF;
$s = preg_split("/<\/A>/i",$str);
$s = preg_replace("/\n+/","",$s);
$uris = preg_grep("/HREF/i",$s);
foreach($uris as $v){
$fin = explode('">',$v);
$t=preg_split('/href="/i',$fin[0] );
print end($t)."\n";
}
输出
# php test.php
http://www.testings2
http://www.blabla
http://www.gowick
http://www.testing3
http://somewhere.com
答案 2 :(得分:0)
不确定如何在PhP中应用它,但它适用于perl
/<a href="([^"]+)".+/i;
我认为是
preg_match( '/<a href="([^"]+)".+/i;', $str, $matches);