例如:asdfhasdjfh<b>2</b>asdfasdf<b>3</b>asdfjsdhfjasdjhdsf
我要取得<b></b>之间的值一共有2个,存成数组!怎么写啊呵呵,谢谢

解决方案 »

  1.   

    $result=preg_match_all("/.*<b>(.*)</b>.*/g", $str, $resut_arr);
      

  2.   

    <?php
    $str = "asdfhasdjfh <b>2 </b>asdfasdf <b>3 </b>asdfjsdhfjasdjhdsf";
    preg_match_all ("|<b>(.*)</b>|U",$str, $out, PREG_PATTERN_ORDER);
    print $out[1][0].", ".$out[1][1]."\n";
    ?>
      

  3.   


    <?php 
    $s='asdfhasdjfh <b>2 </b>asdfasdf <b>3 </b>asdfjsdhfjasdjhdsf';
    preg_match_all('/<b>(.*?)<\/b>/',$s,$arr);
    print_r($arr[1]);
    ?>
      

  4.   

    不好意思,在帮我思考一下
    如果
    <b></b>如果是数字或者字符的话怎么写啊!!
      

  5.   

    (.*)中
    . 为除换行符以外所有可能的字符.\d  为数字
    \s   为空白字符(空格或Tab)匹配数字: (\s*\d+\s*)匹配字符: (\s*\S+\s*)
      

  6.   

    其它代码楼上都有,我就不重复了,只写正则表达式
    /<b[^>]*>([^<>]*)(?:<\/b[^>]*>)/i但是大家的前提就是B这个标签必须封口闭合。如果不闭合呢?
    那么原则就是遇到第一个<为止,去>和<之间的数据
    /<b[^\w>]*>([^<>]*)</i