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';是什么意思 展开
$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';是什么意思 展开
2个回答
展开全部
${1}代表 '/(\w+) (\d+), (\d+)/i'中第1个括号里的内容
$3 代表 '/(\w+) (\d+), (\d+)/i'中第3个括号里的内容
${1} 因为后面跟这个很难区分($11)所以加个大括号包住
$3 代表 '/(\w+) (\d+), (\d+)/i'中第3个括号里的内容
${1} 因为后面跟这个很难区分($11)所以加个大括号包住
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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手册中此函数的详细说明和正则表达式中反向引用的概念。
在$replacement中,可以用$1,$2,$3分别引用$pattern中从左到右第一、二、三个括号中匹配的内容,为了避免$11被解析为引用第11个而不是第1个括号里的内容,所以要写成${1}1。
具体匹配分析:
(\w+)匹配April,空格匹配空格,(\d+)匹配15,逗号匹配逗号,(\d+)匹配2003,加起来正好就是$string的值,替换后就是 April(第一个括号匹配的内容)1,2003(第三个括号匹配的内容)。
最后建议你看下PHP手册中此函数的详细说明和正则表达式中反向引用的概念。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |