Heim  >  Artikel  >  Backend-Entwicklung  >  请问正则必须包含怎么匹配呢

请问正则必须包含怎么匹配呢

WBOY
WBOYOriginal
2016-06-13 11:40:081060Durchsuche

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

(.*)


内容:

  • str
  • 标题一
  • 标题二


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



    当前错误结果:(匹配成了整段了)
    标题一
    标题二
    内容:
  • str
  • ..." data-pics="">
    ------解决方案--------------------
    加上 U,禁止贪婪
    ------解决方案--------------------
    是这个意思吗
    <br />$str = '<li>str</li><li><a href="/x.html">标题一</a></li><a href="/BAMC"><div class="plst"><b>标题二</b></div></a>';<br />preg_match_all("/<a.*?><div class=\"plst\"><b>(.*)<\/b><\/div><\/a>/is",$str,$match);<br />echo "<pre class="brush:php;toolbar:false">";<br />print_r($match);<br />

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

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

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

    ------解决方案--------------------
    $s =<<< TXT<br /><li>str</li><li><a href="/x.html">标题一</a></li><a href="/BAMC"><div class="plst"><b>标题二</b></div></a><br />TXT;<br />preg_match('/.+(<a.+?<div class="plst".+?a>)/is', $s, $m);<br />echo $m[1];
    <a href="/BAMC"><div class="plst"><b>标题二</b></div></a><br />
    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
    Vorheriger Artikel:关于php访问access的迷惑,困扰了一天也没解决Nächster Artikel:100分 求IIS环境跟WAMP环境共存的详细解决方案!

    In Verbindung stehende Artikel

    Mehr sehen