PHP正则匹配问题preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);
preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);print_r($dirinfo);怎么会输出Array([0]=>tec...
preg_match("/([a-zA-Z]+)/","tech/web",$dirinfo);
print_r($dirinfo);
怎么会输出Array
(
[0] => tech
[1] => tech
) 展开
print_r($dirinfo);
怎么会输出Array
(
[0] => tech
[1] => tech
) 展开
推荐于2016-05-05
展开全部
使用括号会对匹配结果进行分组。在匹配结果中,键为0的表示整个正则匹配的内容,之后的是对应的括号中匹配的东西。
另外,你这里使用的是preg_match,所以只会匹配一个结果,如果想匹配所有的话,就使用preg_match_all
为了应正上面的描述,你可以运行以下代码试试:
$dirinfo = array();
preg_match_all("/([a-zA-Z]+)\d+/","tech01/web",$dirinfo);
print_r($dirinfo);
另外,你这里使用的是preg_match,所以只会匹配一个结果,如果想匹配所有的话,就使用preg_match_all
为了应正上面的描述,你可以运行以下代码试试:
$dirinfo = array();
preg_match_all("/([a-zA-Z]+)\d+/","tech01/web",$dirinfo);
print_r($dirinfo);
追问
对对对,我忘了匹配全部
2014-11-24
展开全部
/([a-zA-Z]+)/ 正则的意思是匹配所有大写字母和小写字母并出现一次以上。
而字符串’tech/web’中,符号'/'即不是大写字母,也不是小写字母,所以不会被匹配上,并且匹配在此中断。
因此输出'tech'.
而字符串’tech/web’中,符号'/'即不是大写字母,也不是小写字母,所以不会被匹配上,并且匹配在此中断。
因此输出'tech'.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为tech和web之间有一个/,正则匹配到/后暂停取值,然后继续,所以结果就是这两个值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询