解释下这个 正则表达式
<br />preg_match_all("/<\?(?:(\d)|=)?/", "<?10", $mat)) <br />//<span style="color:transparent">本文来源gaodai#ma#com搞*!代#%^码$网!</span><strong>搞代gaodaima码</strong>这个结果是<br /> [0] => Array<br /> (<br /> [0] => <?1<br /> [1] => 1//为什么会有它<br /> )<br /><br />preg_match_all("/<\?(?:\d|=)?/", "<?10", $mat)) <br />//这个结果是<br /> [0] => Array<br /> (<br /> [0] => <?1<br /> )<br />//第一个多了一个小括号<br />
——解决方案——————–
你要看手册,手册的例子说得很明白的
[0]表示整个正则匹配到的
[1]表示第一对小括号匹配到的
[2]表示第二对小括号匹配到的
……
(?: )则表示不进行匹配,所以没有进入到结果数组
——解决方案——————–
多一对括号就多一组咯,以括号分组的。