php preg_replace函数的问题

<?php$string='April15,2003';$pattern='/(\w+)(\d+),(\d+)/i';$replacement='${1}1,$3';ec... <?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
以上例程会输出:
April1,2003
请问这句$replacement = '${1}1,$3';是什么意思
展开
 我来答
stagezm
2013-02-06 · TA获得超过111个赞
知道答主
回答量:105
采纳率:0%
帮助的人:66.9万
展开全部
${1}代表 '/(\w+) (\d+), (\d+)/i'中第1个括号里的内容
$3 代表 '/(\w+) (\d+), (\d+)/i'中第3个括号里的内容

${1} 因为后面跟这个很难区分($11)所以加个大括号包住
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
特中戏0H78a
推荐于2018-04-12 · TA获得超过292个赞
知道小有建树答主
回答量:293
采纳率:0%
帮助的人:230万
展开全部
preg_replace函数用法:搜索$string中符合正则规则$pattern的部分,以$replacement替换,返回替换后的内容。
在$replacement中,可以用$1,$2,$3分别引用$pattern中从左到右第一、二、三个括号中匹配的内容,为了避免$11被解析为引用第11个而不是第1个括号里的内容,所以要写成${1}1。
具体匹配分析:
(\w+)匹配April,空格匹配空格,(\d+)匹配15,逗号匹配逗号,(\d+)匹配2003,加起来正好就是$string的值,替换后就是 April(第一个括号匹配的内容)1,2003(第三个括号匹配的内容)。
最后建议你看下PHP手册中此函数的详细说明和正则表达式中反向引用的概念。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式