Php 带preg_match_all的换行符

Php 带preg_match_all的换行符,php,html-parsing,preg-match,newline,preg-match-all,Php,Html Parsing,Preg Match,Newline,Preg Match All,我正在尝试使用preg\u match\u all捕获所有出现的。没有新词我也能用,但不能用。我在结尾使用了/s修改器,但没有使用 注意,最初我只能返回第一次出现,但我发现我可以使用一个断言,该断言使用(?=](.*)>) //如果文本中没有换行符,它将查找88和573 $text=''; preg_match_all('/](.*)>(?=](.*)>)/si',$text,$acell); 回声“; var_dump($acell); 回声“; //文本中有换行符,无法找到它。 $text=

我正在尝试使用
preg\u match\u all
捕获所有出现的
。没有新词我也能用,但不能用。我在结尾使用了/s修改器,但没有使用

注意,最初我只能返回第一次出现,但我发现我可以使用一个断言,该断言使用
(?=](.*)>)

//如果文本中没有换行符,它将查找88和573
$text='';
preg_match_all('/](.*)>(?=](.*)>)/si',$text,$acell);
回声“;
var_dump($acell);
回声“;
//文本中有换行符,无法找到它。
$text='1
';
preg_match_all('/](.*)>(?=](.*)>)/si',$text,$acell);
回声“;
var_dump($acell);
回声“;
更简单:

preg_match_all('/]+>/i',$text,$acell);

后面有新行,而不是在中。这里的断言只是碰巧起作用,它不适用于上面有换行符的文本。没有匹配的内容-甚至第一次出现都没有。确实如此:非常奇怪-我看到它在沙箱中工作,但在我的本地机器上仍然没有显示任何内容-剪切并粘贴到新的php文件中。好的,它不会显示单元格的内容,因为浏览器正在呈现标签。这就是为什么我对输出使用
var\u dump
——它表明字符串具有长度。有没有一种方法可以在firefox中通过
print\u r
显示标签来获得输出?
pre
标签应该可以做到这一点,但我使用
highlight\u字符串(print\r($acell,true))
// without newlines in text, it finds 88 and 573
    $text = '<table><colgroup><col width="88"><col width="573"></colgroup>';

    preg_match_all('/<col width=[^>](.*)>(?=<col width=[^>](.*)>)/si', $text, $acell);
    echo "<pre>";
    var_dump($acell);
    echo "</pre>";    

// with newlines in text, can't find it.
    $text = '<table>
    <colgroup><col width="88">
    <col width="573">
    </colgroup>';

    preg_match_all('/<col width=[^>](.*)>(?=<col width=[^>](.*)>)/si', $text, $acell);    
    echo "<pre>";
    var_dump($acell);
    echo "</pre>";    
preg_match_all('/<col width=[^>]+>/i', $text, $acell);