在如下内容中找出{{}}之间的内容,<!---->内的不取,把最后的内容变成如下格式:$string|string1|string2
<table>
<tr><td>{{$string}}</td></tr>
<tr><td>{{$string1}}</td></tr>
<tr><td>{{$string2}}</td></tr>
<!--<tr><td>{{$string3}}</td></tr>-->
</table>
帮我讲讲,结合这个帮我讲讲正则

解决方案 »

  1.   


    <?php
    $str = "
    <table>
    <tr><td>{{\$string}}</td></tr>
    <tr><td>{{\$string1}}</td></tr>
    <tr><td>{{\$string2}}</td></tr>
    <!--<tr><td>{{\$string3}}</td></tr>-->
    </table>
    ";$temp = preg_replace("/<!\-\-(.*)\-\->/i",'',$str);
    $i = preg_match_all("/\{\{(.*?)\}\}/i",$temp,$match);
    echo implode('|',$match[1]);
    ?>
    思路顯而易見,期待有更好的正則
      

  2.   

    本帖最后由 xuzuning 于 2010-05-07 08:33:04 编辑
      

  3.   

    Regex.Match(yourStr,@"(?<!<!--.*?)<tr><td>{{(.+?)}}</td></tr>(?!.+?-->)").Value