问答详情
源自:3-4 贪婪模式与懒惰模式

关于正则表达式name:[.+]表示看不懂啊

刚刚有个同学告诉我这个正则表达式可以写成name:[.+]但是表示看不懂

如果是name:[.+]的话,匹配到的不应该是name:steven jobs吗

而且preg_match不是不是只得到一个结果集吗???

那$match[1]又怎么会是steven jobs呢??

求老师解答,最好把圆括号的知识点也讲讲吧

提问者:慕函数3178513 2017-02-26 09:14

个回答

  • 图灵机
    2017-02-26 10:11:16
    已采纳

    我认为只有整个正则表达式得到匹配的前提下,才会将符合( )的内容放到$1、$2里,刚刚试验了一下,是这样的,我也是刚学正则,不太难吧

  • 图灵机
    2017-02-26 09:51:00

    我不是老师,给你讲一下,按你的思路,name:(.+)才是对的,

    1. name:[.+]本身是错的,因为[]括号只会匹配一个字符,name:[.]+还差不多;

    2. preg_match是得到一个结果,得到的结果放在$0里,匹配到的其他()里的内容放在$1,$2……里;

    3. 此题最后的结果要求在$1里,必须要有(),所以匹配表达式可以写为name:(.+)