k-bryant 发表于 2013-02-21 17:57

求解正则表达式

<?php

preg_match('@^(?:http://)?([^/]+)@i',
    "http://www.php.net/index.html", $matches);

print_r($matches);
?>

运行结果为:
Array ( => http://www.php.net => www.php.net ).

为什么呢?看不懂这个正则

ghostwwl 发表于 2013-02-21 19:37

^(?:http://)

以 http:// 开头(?:)表示非获取
后面?表示匹配0或者1次 表示不是http://开头的也可以

([^/]+) 表示捕获 非 '/'的所有串

那不就是你那结果

maochanglu 发表于 2013-02-23 09:23

前后两个@ 没有实际意义,就是一个分界符。
页: [1]
查看完整版本: 求解正则表达式