关于$pattern ='/字母*\d?字母*/’与$pattern ='/字母\d?字母/’匹配结果不一致

来源:3-3 元字符与转义

氧化氮

2016-12-25 11:40


$str ="m88m";

$pattern1 ='/字母*\d?字母*/’;//匹配成功,$match[0]=m8;

$pattern2 ='/字母\d?字母/’;//匹配失败

根据?:前面字符只出现1次或0次,应两种pattern 都失败,为什么pattern1会匹配成功和$match会这样显示?

写回答 关注

2回答

  • 氧化氮
    2016-12-26 21:42:14

    ?为懒惰模式,匹配尽量少的pattern,不存在匹配多个则失败的情况。

  • 鸟不知天堂
    2016-12-25 12:07:17

    字母*:字母出现0次或多次 ,\d?: 数字出现0次或1次。  m8 中  m出现了一次,8出现一次  这是符合的  

PHP进阶篇

轻松学习PHP中级课程,进行全面了解,用PHP快速开发网站程序

181837 学习 · 2577 问题

查看课程

相似问题