Php Preg_match忽略新行或制表符

Php Preg_match忽略新行或制表符,php,web-scraping,preg-match,Php,Web Scraping,Preg Match,我的html输出源是这样的 <td><span class="bookdetailtitle">ISBN</span></td> <td>:</td> <td>9788172338299</td> ISBN : 9788172338299 我只需要9788172338299打印。如果上述

我的html输出源是这样的

<td><span class="bookdetailtitle">ISBN</span></td>
                            <td>:</td>
                            <td>9788172338299</td>
ISBN
:
9788172338299
我只需要9788172338299打印。如果上述代码在同一行中,则正确打印。但是因为有新的行和标签,我没有得到输出。我尝试用/s替换/I,但不起作用。我希望preg_match与字符串匹配,而不考虑新行或制表符,并打印所需的输出

这是我的密码:

$page2='<td><span class="bookdetailtitle">ISBN</span></td>
                            <td>:</td>
                            <td>9788172338299</td>';

preg_match('/<td><span class="bookdetailtitle">ISBN<\/span><\/td><td>:<\/td><td>(.*)<\/td>/s', $page2, $keywords);
echo $keywords_out = $keywords[1];
$page2='ISBN
:
9788172338299';
预匹配('/ISBN:(.*)/s',$page2,$keywords);
echo$keywords_out=$keywords[1];

如果你只需要数字,像这样的东西

$page2='<td><span class="bookdetailtitle">ISBN</span></td>
                            <td>:</td>
                            <td>9788172338299</td>';

preg_match('/<td>+[0-9]+<\/td>/', $page2, $keywords);
print_r($keywords); 
$page2='ISBN
:
9788172338299';
preg_匹配(“/+[0-9]+/”,$page2,$keywords);
打印(关键字);

很多人会说,不要使用正则表达式解析html。我同意。:)

我会这样做:

$page=explode('<td>',$page2);
print_r($page[3]);
$page=explode(“”,$page2);
打印(第[3]页);


编辑:去掉最后一个td->
print_r(带标签($page[3])

我可能还有文本。。。在这种情况下该怎么办?好的,您需要LAST的内容(可以是任何内容)?