欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

请教正则必须包含如何匹配呢

程序员文章站 2022-05-27 15:47:29
...
正则:
(.*)


内容:
  • str
  • 标题一
  • 标题二


    目标:(必须包含
    )
    标题二



    当前错误结果:(匹配成了整段了)
    标题一
    标题二

    回复讨论(解决方案)

    加上 U,禁止贪婪

    是这个意思吗

    $str = '
  • str
  • 标题一
  • 标题二
    ';preg_match_all("/
    (.*)/is",$str,$match);echo "
    ";print_r($match);

    是这个意思吗

    $str = '
  • str
  • 标题一
  • 标题二
    ';preg_match_all("/
    (.*)/is",$str,$match);echo "
    ";print_r($match);



    正确结果:
    标题二


    当前错误结果:
    标题一
    标题二


    我试了你这个,还是匹配了下面这种结果。

    preg_match_all("/
    (.*)/isU",$str,$match);//加上U,禁止贪婪模式

    preg_match_all("/
    (.*)/isU",$str,$match);//加上U,禁止贪婪模式
    该死的csdn
    preg_match_all("/
    (.*)/is U",$str,$match);

    加上 U,禁止贪婪
    好象不是贪婪的问题,因为他在匹配到结果就立即结束了。

    加了U

    $str = '
  • str
  • 标题一
  • 标题二
    ';preg_match_all("/
    (.*)/U",$str,$match);echo "
    ";print_r($match);


    结果:
    Array(    [0] => Array        (            [0] => 标题一
    标题二
    ) [1] => Array ( [0] => 标题二 ))


    preg_match_all("/
    (.*)/isU",$str,$match);//加上U,禁止贪婪模式
    该死的csdn
    preg_match_all("/
    (.*)/is U",$str,$match);



    结果:
    Array(    [0] => Array        (            [0] => 标题一
    标题二
    ) [1] => Array ( [0] => 标题二 ))


    前面一堆这个还是多余存在的:
    标题一

    给个提醒
    匹配一些有边界的内容,应以 边界+ 排除边界+ 边界 这样的形式写正则,避免随意地用圆点
    尤其是html等标记语言,因为标记语言的特性就是标记,中间含有换行也是合法的,圆点不能涵盖,随便用圆点就有点想当然认为源字串一定工整了
    举个极端例子如:
    href="
    abc/abc.html">
    ABC

    这段html字串完全合法,一点都不影响网页的显示,但正则就要想好了

    "[^"]*"
    ]+>
    [^

    $s =str
  • 标题一
  • 标题二
    TXT;preg_match('/.+()/is', $s, $m);echo $m[1];
    标题二

    再简化一下

    preg_match('/.+()/is', $s, $m);echo $m[1];/*
    标题二
    */
    请教正则必须包含如何匹配呢

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

    相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 请教正则必须包含如何匹配呢
  • 专题推荐

    作者信息
    请教正则必须包含如何匹配呢

    认证0级讲师

    推荐视频教程
  • 请教正则必须包含如何匹配呢javascript初级视频教程
  • 请教正则必须包含如何匹配呢jquery 基础视频教程
  • 视频教程分类