(.*?)这个匹配的是什么

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

111

2017-07-31 22:31

(.*?)这个匹配的是什么

写回答 关注

5回答

  • 慕移动9181930
    2022-03-26 04:38:58

    其实有两个plist,一个是SwiftWeather的,一个是SwiftWeatherTests里面的,你看下是不是写错了

  • 小橙子的小马甲
    2018-07-03 21:20:52

    $subject = "abcaaaaaaaaaadef";

    $pattern = '/a.*?d/';

    preg_match($pattern, $subject, $matches);

    print_r($matches); 

    //在这种情况下,.*会一直匹配,加了?后,变成非贪婪模式,?后跟的是d,所以会匹配至d结束

    //运行结果是

    Array
    (
        [0] => abcjhjkhhljkhd
    )

    加了()小括号之后,会再一次输出小括号中匹配的内容

    $subject = "abcjhjkhhljkhdef";

    $pattern = '/a(.*?)d/';

    preg_match($pattern, $subject, $matches);

    print_r($matches);

    结果为:

    Array
    (
        [0] => abcjhjkhhljkhd
        [1] => bcjhjkhhljkh
    )

    我看的时候也被这个问题困扰了,不晓得现在的理解对不对,加油,共勉。

  • 小橙子的小马甲
    2018-07-03 21:02:50

    .点号字符,  匹配任何单个字符(除换行符外)。

    *号字符,匹配0或多次匹配,意思是要么不匹配,要么匹配多次,点号与星号.*在一起是匹配人任意数量的除换行符之外的字符。

    ?问号字符,作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。重要的是在量次后面改变其贪婪属性,前面的*是量次,且是贪婪属性,后面跟问号?,则变化成非贪婪属性,则尽可能少的匹配,也就是从之前的匹配任意数量的字符(仍然是换行符除外)变为了0次或一次匹配,匹配成功就一次,匹配失败就0次。

    ()圆括号,举例说明,eg: a(b)c,在这个例子中,用abcac来进行匹配的话,可以得到ac,abc两个结果,意思是小括号中的内容在能匹配的情况下是需要匹配的,匹配不到内容也可以跳过。

    以上是我的理解,谢谢!

  • 慕妹6565232
    2017-08-01 11:10:22

    两个字符之间的字符串或数字

  • qq_宅_3
    2017-08-01 11:02:53

    .点  匹配任何单个字符。例如正则表达式r.t匹配这些字符串:rat、rut、r t,但是不匹配root。
    * 匹配0或多个正好在它之前的那个字符。例如正则表达式。*意味着能够匹配任意数量的任何字符。
    ? 匹配0或1个正好在它之前的那个字符。注意:这个元字符不是所有的软件都支持的。

PHP进阶篇

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

181734 学习 · 2575 问题

查看课程

相似问题