http://community.csdn.net/Expert/PostNew.asp?room=303这个呢?取什么?参考:
====================
$str = 'http://www.google.com/
www.google.com
http://www.126.com
http://www.baidu.com/index.php
www.yahoo.com.cn
http://community.csdn.net/Expert/PostNew.asp';preg_match_all('/(?:www\.)(.*?)(?:\/|\s+)/is',$str,$m);print_r(array_unique($m[1]));
====================
$str = 'http://www.google.com/
www.google.com
http://www.126.com
http://www.baidu.com/index.php
www.yahoo.com.cn
http://community.csdn.net/Expert/PostNew.asp';preg_match_all('/(?:www\.)(.*?)(?:\/|\s+)/is',$str,$m);print_r(array_unique($m[1]));
http://community.csdn.net/Expert/PostNew.asp?room=303这个呢?取什么?
就取
csdn.net
谢谢帮助..
我刚开始写的是下面这个
/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/]/但是 如果我的URL是 bbs.163.com 我只想得到 163.com 能写出来么???我不知道怎么写,感觉没有什么规律....麻烦了..
=========
preg_match_all('/(?:(?:http:\/\/)?\w+\.)(\w+\.\w+(?:\.\w+)?)/',$str,$m);
// \\2 是一个逆向引用的例子,其在 PCRE 中的含义是
// 必须匹配正则表达式本身中第二组括号内的内容,本例中
// 就是 ([\w]+)。因为字符串在双引号中,所以需要
// 多加一个反斜线。
$html = "<b>bold text</b><a href=howdy.html>click me</a>";preg_match_all ("/(<([\w]+)[^>]*>)(.*)(<\/\\2>)/", $html, $matches);for ($i=0; $i< count($matches[0]); $i++) {
echo "matched: ".$matches[0][$i]."\n";
echo "part 1: ".$matches[1][$i]."\n";
echo "part 2: ".$matches[3][$i]."\n";
echo "part 3: ".$matches[4][$i]."\n\n";
}
?> 本例将输出: matched: <b>bold text</b>
part 1: <b>
part 2: bold text
part 3: </b>matched: <a href=howdy.html>click me</a>
part 1: <a href=howdy.html>
part 2: click me
part 3: </a>