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
)
展开
 我来答
匿名用户
推荐于2016-05-05
展开全部
使用括号会对匹配结果进行分组。在匹配结果中,键为0的表示整个正则匹配的内容,之后的是对应的括号中匹配的东西。

另外,你这里使用的是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'.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaoningwang
2014-11-24 · TA获得超过682个赞
知道小有建树答主
回答量:806
采纳率:83%
帮助的人:880万
展开全部
因为tech和web之间有一个/,正则匹配到/后暂停取值,然后继续,所以结果就是这两个值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式