问答详情
源自:3-3 元字符与转义

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


$str ="m88m";

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

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

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

提问者:氧化氮 2016-12-25 11:40

个回答

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

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

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

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