虚心求教一个正则表达式 我用 file_get_contents($url)得到内容。我想从内容中提取url,但url有一定限制<a XXX href='URL' XXX>YYY</a>'XXX':可以有任何的其它属性,又或者没有,反正不确定。'YYY':这个内容是定的。比如是 'kick me'这类型的。我就是要提取url显示为某个字符的 url 谢谢。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $s = <<< HTML<a XXX href='URL' XXX>YYY</a><a XXX href='URL' XXX>ZZZ</a>HTML;$word = 'YYY';$p = "#<a .*?>$word</a>#is";preg_match_all($p, $s, $r);print_r($r);Array( [0] => Array ( [0] => <a XXX href='URL' XXX>YYY</a> )) 我只要这个 URL ,<a </> 这些都不要的,谢谢 <?php$url = "<a XXX href='http://www.sina.com.cn/index.html' XXX>YYY </a><a XXX href=\"http://www.sina.com.cn/?abc.php=中国信息\" XXX>YYY </a><a name=\"世界真奇妙\" href='http://www.sina.com.cn/?abc.php=asdj' XXX>YYY </a><a XXX href='http://www.sohu.com/?abc' XXX>YYY </a>";print_r(filterUrl($url));function filterUrl($param){ preg_match_all("/href=('|\")(.*?)(?1)\s+/",$param,$mas); $url = array(); for($i=0;$i<count($mas[1]);$i++) { $url[] = preg_replace("/".$mas[1][$i]."/","",$mas[2][$i]); } return $url;}?>Array( [0] => http://www.sina.com.cn/index.html [1] => http://www.sina.com.cn/?abc.php=中国信息 [2] => http://www.sina.com.cn/?abc.php=asdj [3] => http://www.sohu.com/?abc) 对不起,你可能误会我的意思了。比如连接有 :<a XXX href='http://www.sina.com.cn/index.html' XXX>123456</a><a XXX href=\"http://www.sina.com.cn/?abc.php=中国信息\" XXX>BBBBB</a><a name=\"世界真奇妙\" href='http://www.sina.com.cn/?abc.php=asdj' XXX>123456</a><a XXX href='http://www.sohu.com/?abc' XXX>YYY </a>//我要的连接是 <a XXX href='http://www.sina.com.cn/index.html' XXX>123456</a><a name=\"世界真奇妙\" href='http://www.sina.com.cn/?abc.php=asdj' XXX>123456</a><a>这里是 123456</a> 的串,不是123456的不要。 4楼和7楼有矛盾, 又说只要url , 又说要标签内容, 究竟是怎么的 ? 请教update的能否批量更新 XML替换时字符中的回车怎么替换 请问php的session怎么用的 请教DOMdocument::getAttribute()的问题 关于PHPMailer报错的问题,如何解决.... [文件的操作]要删除文件夹中最古老的文件(急) php提交表单的问题!急 php与javascript如何联合实现进度条。例如web页面上实现数据库导入的进度条操作 鸟儿兄,有什么最好的办法实现上传下载。 用PHP有没有办法取得访问者的网卡号?硬盘序列号? 如何使用php修改redhat中的网卡配置文件 请问如何实现根据第一个下拉框的选定内容生成第二个下拉框的选项
<a XXX href='URL' XXX>YYY</a>
<a XXX href='URL' XXX>ZZZ</a>
HTML;$word = 'YYY';
$p = "#<a .*?>$word</a>#is";
preg_match_all($p, $s, $r);
print_r($r);Array
(
[0] => Array
(
[0] => <a XXX href='URL' XXX>YYY</a>
))
<?php
$url = "
<a XXX href='http://www.sina.com.cn/index.html' XXX>YYY </a>
<a XXX href=\"http://www.sina.com.cn/?abc.php=中国信息\" XXX>YYY </a>
<a name=\"世界真奇妙\" href='http://www.sina.com.cn/?abc.php=asdj' XXX>YYY </a>
<a XXX href='http://www.sohu.com/?abc' XXX>YYY </a>
";print_r(filterUrl($url));function filterUrl($param)
{
preg_match_all("/href=('|\")(.*?)(?1)\s+/",$param,$mas);
$url = array();
for($i=0;$i<count($mas[1]);$i++)
{
$url[] = preg_replace("/".$mas[1][$i]."/","",$mas[2][$i]);
}
return $url;
}?>
Array
(
[0] => http://www.sina.com.cn/index.html
[1] => http://www.sina.com.cn/?abc.php=中国信息
[2] => http://www.sina.com.cn/?abc.php=asdj
[3] => http://www.sohu.com/?abc
)
比如连接有 :<a XXX href='http://www.sina.com.cn/index.html' XXX>123456</a>
<a XXX href=\"http://www.sina.com.cn/?abc.php=中国信息\" XXX>BBBBB</a>
<a name=\"世界真奇妙\" href='http://www.sina.com.cn/?abc.php=asdj' XXX>123456</a>
<a XXX href='http://www.sohu.com/?abc' XXX>YYY </a>//我要的连接是
<a XXX href='http://www.sina.com.cn/index.html' XXX>123456</a>
<a name=\"世界真奇妙\" href='http://www.sina.com.cn/?abc.php=asdj' XXX>123456</a>
<a>这里是 123456</a> 的串,不是123456的不要。