preg匹配多行无效

时间:2014-12-02 20:12:09

标签: php regex

Websiste包含一些代码如下..

</span></td>
    <td width="1%" align="right" nowrap="nowrap" class="small inner" >190 MB</td>
    <td width="1%" align="center" nowrap="nowrap" class="small inner" >15</td>

我需要 190MB

我尝试下面的代码..tried / s,/ m没什么用。

preg_match_all('/<\/td>
    <td width="1%" align="right" nowrap="nowrap" class="small inner" >(.*?)<\/td>/m',$lol,$cooler);

2 个答案:

答案 0 :(得分:2)

Ew,用正则表达式解析HTML。永远不是一个好主意。

因为似乎没有任何方便的标识符,解析器可以帮助你进入,所以为什么不只是preg_match("/\d+\s*[KMG]B/,$ lol,$ match); echo $ match [0];`?保持尽可能简单。

答案 1 :(得分:1)

$lol = '</span></td>
<td width="1%" align="right" nowrap="nowrap" class="small inner" >190 MB</td>
<td width="1%" align="center" nowrap="nowrap" class="small inner" >15</td>';    

preg_match_all('/(?<=\<\/span\>\<\/td\>)[\n]?.*((?<=\>).+(?=\<))/', $lol, $cooler);

echo $cooler[1][0]; //Outputs "190 MB"

http://regex101.com/r/jY1pY9/1