先说说情况。
现有定符串
<a class="node" href="home.php?mod=space&amp;uid=23455666" title="fsdfdf">sdfsf</a>红色部分有时有,有时又没有两种情况。
我是这样表示的<a (class="node") {0,}解示一下我的理解:我把class="node"它括起来当成一个整体,然后通过{0,}来表示class="node"可以出现也可以不出现,但是结果不对,不知我哪里理解错了

解决方案 »

  1.   

    既然 class="node" 可有可无,那他就不是匹配标志
    不要他就是了
      

  2.   


    可有时它又有,并且有时这里出现的class....字符串,不是class="node"比如可以是class="dfsdsfsdff"或者别的,但是我只要是class="node"的,让人头痛的是,有时class="node"又没有这种情况也要
      

  3.   

    $s = <<<TXT
    <a class="node" href="home.php?mod=space&amp;uid=23455666" title="fsdfdf">sdfsf</a>
    <a class="fdsafs" href="home.php?mod=space&amp;uid=23455666" title="fsdfdf">sdfsf</a>
    <a href="home.php?mod=space&amp;uid=23455666" title="fsdfdf">sdfsf</a>
    TXT;
    preg_match_all('#<a\s*(class="node")?\s*href=.+?</a>#', $s, $m);
    print_r($m);
    Array
    (
        [0] => Array
            (
                [0] => <a class="node" href="home.php?mod=space&amp;uid=23455666" title="fsdfdf">sdfsf</a>
                [1] => <a href="home.php?mod=space&amp;uid=23455666" title="fsdfdf">sdfsf</a>
            )    [1] => Array
            (
                [0] => class="node"
                [1] => 
            ))