最近在学PHP,现在有个字符串,里面的内容是这样的:
<p>这里是字符串。字符串。字符串。</p>
<p>这里是字符串。字符串。字符串。</p>
<p>这里是字符串。字符串。字符串。</p><p>这里是字符串。字符串。字符串。</p>
<p>这里是字符串。字符串。字符串。</p>
<p>这里是字符串。字符串。字符串。</p>
<p>这里是字符串。字符串。字符串。</p>就是都是这样构成的,<p>标签里面有字符,然后中文的句号。想取前3个<p>标签的第一个句号的内容,请问要怎么写正则来匹配,各位大哥大姐,谢谢了。

解决方案 »

  1.   

    对,就是每个<p></p>之间的开始到第一个句号之间的内容,各位老大,帮帮忙啊
      

  2.   

    取出所有的,放到数组里,你可以取数组的前三个就是了.
    $str = <<<TEST
    <p>这里是字符串。字符串。字符串。 </p> 
    <p>这里是字符串。字符串。字符串。 </p> 
    <p>这里是字符串。字符串。字符串。 </p> <p>这里是字符串。字符串。字符串。 </p> 
    <p>这里是字符串。字符串。字符串。 </p> 
    <p>这里是字符串。字符串。字符串。 </p> 
    <p>这里是字符串。字符串。字符串。 </p> 
    TEST;
    preg_match_all("/<p>([^。]+).*?<\/p>/", $str, $matches);
    var_dump($matches);
      

  3.   

    <p>这里是字符串。字符串。字符串。 </p> preg_match_all("/<p>^(.*)\。(.*)\。(.*)\。<\/p>/", $str, $matches);
    只取$matches[1]就可以了
      

  4.   


    我是想取出每个<p></P>里面的第一个句号之前的内容,就是说第一个<p></p>标签的取过后就跳到下一个<p></p>去取数据了,也是取第一个句号之前的,然后取3段后拼起来就可以了,还有种可能是<p></p>可能都没3个,继续帮忙下啊
      

  5.   

    /<p>.*?。/
    第一个p标记和句号之间的内容.