preg_match输出问题

来源:3-6 查找所有匹配结果

Grey27

2017-07-24 15:58

$matches[0]保存完整模式的所有匹配, $matches[1] 保存第一个子组的所有匹配   这句话怎么理解?

写回答 关注

1回答

  • 林北学网页
    2017-07-25 21:14:52
    已采纳

    正则表达式匹配的一般结果会包括你所有匹配的内容,但是有些的匹配内容不是我们全部要的,例如我们要陪陪的文字源是“hello, my name is xxx”,我们想要提取名字"xxx",然后我们寻找名字的方法是"my name is "后面就是我想要的名字,所以正则表达式为'my name is (\w+)',得到的结果为数组Array([0]=>"my name is xxx" [1]=>"xxx"),但是我们真正有用的是"xxx",而完整模式,我觉得可以用于匹配的结果"xxx"错误了,我们用于检查我们的正则表达式是否有误,会不会陪配到"my naem is xxx"。


    实际案例:


    ======================================

    <?php
    $str = "<ul>
                <li>item 1</li>
                <li>item 2</li>
            </ul>";
    //在这里补充代码,实现正则匹配所有li中的数据
    $p='/<li>(.*)<\/li>/i';
    preg_match_all($p,$str,$matches);
    print_r($matches);

    ?>


    =======================================

    输出结果为

    Array (   

                [0] => Array( 

                                    [0] =><li>item 1</li>

                                    [1] => <li>item 2</li>

                            )   

                [1] => Array(

                                    [0] => item 1

                                   [1] => item 2

                            )

    )

    =======================================

PHP进阶篇

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

181734 学习 · 2575 问题

查看课程

相似问题