为什么php中的*会匹配到null,是php的bug吗,还是其它语言也会这样?
高洛峰
高洛峰 2017-04-10 16:17:58
[PHP讨论组]
php > preg_match_all('/.*/',null,$arr);
php > print_r($arr);
Array
(
    [0] => Array
        (
            [0] => 
        )

)
php > var_dump($arr);
array(1) {
  [0]=>
  array(1) {
    [0]=>
    string(0) ""
  }
}
php > preg_match_all('/.+/',null,$arr);
php > var_dump($arr);
array(1) {
  [0]=>
  array(0) {
  }
}
php > preg_match_all('/.*/U','Love',$arr);
php > var_dump($arr);
array(1) {
  [0]=>
  array(9) {
    [0]=>
    string(0) ""
    [1]=>
    string(1) "L"
    [2]=>
    string(0) ""
    [3]=>
    string(1) "o"
    [4]=>
    string(0) ""
    [5]=>
    string(1) "v"
    [6]=>
    string(0) ""
    [7]=>
    string(1) "e"
    [8]=>
    string(0) ""
  }
}

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(1)
PHP中文网

在PHP里面 . .表示任意字符 表示任意位 ,既然是任意位 0位也可以,null,不匹配任意字符,那正好是0位,10位也是任意位,所以是你没有正则理解正则

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号