正则表达式w和d的疑惑
程序员文章站
2022-03-30 22:04:45
...
$string='April15,2003';
$pattern='/(\w+)(\d+),(\d+)/i';
$replacement='${1},${3}';
echo preg_replace($pattern,$replacement,$string);
?>
结果为April1,2003
为什么 (w+)匹配了April 1,而没有匹配April 15
是不是因为:w本身会匹配数字,如果把5也匹配了,那么d就没有可以匹配的东西了
回复内容:
$string='April15,2003';
$pattern='/(\w+)(\d+),(\d+)/i';
$replacement='${1},${3}';
echo preg_replace($pattern,$replacement,$string);
?>
结果为April1,2003
为什么 (w+)匹配了April 1,而没有匹配April 15
是不是因为:w本身会匹配数字,如果把5也匹配了,那么d就没有可以匹配的东西了
w+能够完整匹配April15,但是你在w+后面又写了d+,为了能够匹配你定义的规则,April1给了w,5给了d。$pattern='([a-z]+)(\d+),(\d{4})/i';
是符合要求的
$pattern='/(w+)(d{1,2{+),(d+)/i';这样子了是不是楼主想要的日期了
推荐阅读
-
js的验证函数和常用正则表达式
-
JS匹配日期和时间的正则表达式示例
-
POSIX 风格和兼容 Perl 风格两种正则表达式主要函数的类比(preg_match, preg_replace, ereg, ereg_replace)
-
IIS6 w3wp.exe进程占用cpu和内存过多的解决方法
-
Excel中CTRL+D的别样用法 隔行和隔列向下填充示例
-
运行CAD和3D画图的电脑应该怎么配置
-
JS中使用正则表达式g模式和非g模式的区别
-
在iOS开发的Quartz2D使用中实现图片剪切和截屏功能
-
iOS开发中使用Quartz2D绘制上下文栈和矩阵的方法
-
Cocos2d-x 3.0中集成社交分享ShareSDK的详细步骤和常见问题解决