我想解析有一些像這樣的HTML內容:的Preg的模式尋找
<td class="s3_40">12,909</td>
我試過很多的正則表達式來查找之間(12909) 字符串,如:%<td class=\"s3_40\">(.*)</td>%
但我沒有發現, 。
我想解析有一些像這樣的HTML內容:的Preg的模式尋找
<td class="s3_40">12,909</td>
我試過很多的正則表達式來查找之間(12909) 字符串,如:%<td class=\"s3_40\">(.*)</td>%
但我沒有發現, 。
希望這可以幫助:
$str = '<td class="s3_40">12,909</td>';
if (preg_match('#<td class="s3_40">(.*)</td>#s', $str, $matches)) {
var_dump($matches[1]);
}
我通過[regexTester](http://www.pagecolumn.com/tool/pregtest.htm)進行了測試,但我沒有收到任何數據 – Ali
我在另一個[Regex Tester](http://www.spaweditor。 com/scripts/regex/index.php)它的作品,我不知道爲什麼[regexTester](http://www.pagecolumn.com/tool/pregtest.htm)不工作,也許它是由分號引起的:$ ptn =「/ <; td class =」s3_40「>;(。*)<;/td>; /」; –
如果你必須使用正則表達式做。你可以嘗試的模式是這樣的:
/<td[^>]*>(.*?)<\/td>/
試試這個
#(?<=(s3_40">))([^<]+)(?=(</td>))#
嘗試做這樣的,只是不斷加入到s3_41,s3_42,等你需要的類。
<?php
$s = '<td class="s3_40">12,909</td>';
$pat = '@<td class=".*(s3_40|s3_41).*".*?>(.*?)</td>@isU';
preg_match_all($pat,$s,$ms);
var_dump($ms);
輸出將如下所示:http://i.imgur.com/kZL3x.png – fedmich
有人會告訴你... – xdazz
你應該停止嘗試使用正則表達式,這和使用[XHTML解析器(http://php.net/manual/en/book.dom.php) 。正則表達式不是解析HTML的好工具。 – meagar
儘管如此,正則表達式可以在一定程度上用於提取內容。 – nhahtdh