preg_match_all("|<table.*<\/table>|siU", $str, $r); s就是把AB之间的内容看做单行,如果不用s的话,就匹配不到有换行的情况。U是禁止贪婪,就也是匹配最近的结束标志。