duanqiang2977 2013-09-11 00:07
浏览 21
已采纳

字边界匹配空字符串

I'm currently trying to get a match on an empty string in PHP, this current run through should match not and empty '' but I can only seem to get it to match not for some reason? Could someone tell me what I'm doing wrong?

preg_match('/^\bnot|$/', 'not', $matches);
print_r($matches);  // array(0 => 'not') // correct

preg_match('/^\bnot|$/', '', $matches);
print_r($matches);  // array(0 => '') // maybe right ?

preg_match('/^\bnot|$/', 'foo', $matches);
print_r($matches);  // array(0 => '') // deff messed up
  • 写回答

2条回答 默认 最新

  • douzha6055 2013-09-11 00:45
    关注

    That's because you are trying to match an empty string incorrectly. Your regular expression should be.

    ^$|pattern
    

    And with \b (word boundary), this matches from a \w (word character) to a \W (non word character). It is in fact a zero-width match (empty string) but only matches those strings at specific places in a word boundary

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
  • ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序