关于php正则表达式preg_replace的问题???

请问:<?php$pattern=array('/\d/','/[a-z]/','/[1a]/');$replace=array('A:$0','B:$0','C:$0'... 请问:
<?php
$pattern = array('/\d/','/[a-z]/','/[1a]/');
$replace = array('A:$0','B:$0','C:$0');
$subject = array('1','a');
echo "preg_replace returns\n";
print_r(preg_replace($pattern, $replace, $subject));
?>
结果:preg_replace returns Array ( [0] => A:C:1 [1] => B:C:a )
为什么得到的结果会是这样,手册上写着$0代表完整的模式匹配文本怎么理解这句话,好懵???
展开
 我来答
Zjmainstay
2015-09-25 · 知道合伙人互联网行家
Zjmainstay
知道合伙人互联网行家
采纳数:580 获赞数:1129
http://www.zjmainstay.cn

向TA提问 私信TA
展开全部
$subject[0] = 1;
    1   操作(/\d/    => A:$0)  ==> A:1 
    A:1 操作(/[a-z]/ => B:$0)  ==> A:1
    A:1 操作(/[1a]/  => C:$0)  ==> A:C:1


$subject[1] = 'a';
    a   操作(/\d/    => A:$0)  ==> a 
    a   操作(/[a-z]/ => B:$0)  ==> B:a
    B:a 操作(/[1a]/  => C:$0)  ==> B:C:a
    
正则里有捕获组的概念,$0表示整个匹配,如有括号,则每个括号,从左到右,对应$1,$2...

更多正则内容,请参考我的博客《我眼里的正则表达式(入门)》
博客地址:http://www.zjmainstay.cn/my-regexp
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式