正则表达式 - 查找 <td> 标记之间的所有内容


Regex - find everything between <td> tags

我正在尝试使用正则表达式获取(和)标签之间的所有内容。我是新手,但我尝试了以下方法

$html = file_get_contents($inputUrl);
preg_match_all('<td>([^"]*)</td>/', $html, $result);
foreach ($result as $val) {
    print $val."<br>";
}

我认为我的正则表达式的语法是错误的。我收到以下错误:

警告:preg_match_all() [function.preg-match-all]:未知修饰符 C中的"("...''tester.php在第 5 行

警告:在 C:...''tester 中为 foreach() 提供的参数无效.php 在第 7 行

顺便说一句,我需要为这项任务使用正则表达式!所以我不需要任何关于使用"解析XML"等的建议。

任何帮助将不胜感激

使用以下工作代码:

$mpmatch = "!<td>(.*?)</td>!is";
$str = "<td>sdfdfdfdsfds</td><td>333333333</td>";
preg_match_all($mpmatch, $str, $result);
foreach ($result as $val) {
    echo "<pre>";
    print_r($val);
}

希望这对您有所帮助。

您错过了第一个分律,您需要逃脱/或使用不同的分律仪

   preg_match_all('/<td>([^"]*)<'/td>/', $html, $result);
                   ^----

或:

   preg_match_all('#<td>([^"]*)</td>#', $html, $result);

另外,你需要使用贪婪匹配:

   preg_match_all('#<td>(.*?)</td>#s', $html, $result);