正则表达式解析html

时间:2010-07-17 17:22:13

标签: php regex

请参阅代码:

$result = "<b>Associated Names</b>&nbsp;&nbsp;[<a href='http://www.examples.com/authors.html?act=change&id=6141&item=associated'><u>Edit</u></a>]</td> 
        </tr> 
        <tr> 
          <td class='text' align='left'>G&#12539;R<br />G-R<br />         </td>"

preg_match_all("/<b>Associated Names.{10,100}<td class='text' align='left'>((.*<br \/>)*).*<\/td>/sU", $result, $assoc);
var_dump($assoc);
-----------------------------------------------------------
RESULT 
array
  0 => 
    array
      0 => string '<b>Associated Names</b></td>
        </tr>
        <tr>
          <td class='text' align='left'>G&#12539;R<br />G-R<br />         </td>' (length=135)
  1 => 
    array
      0 => string '' (length=0)
  2 => 
    array
      0 => string '' (length=0)

我希望它返回

array(
    1 => 
     array
      0 => string 'G&#12539;R',
    2 => 
     array
      0 => string> 'G-R'
)

这是圆括号((。)我想修理它,请帮帮我

1 个答案:

答案 0 :(得分:3)

请不要尝试使用正则表达式解析HTML,invokes the wrath of Zalgo

尝试使用the DOMxpath来定位您尝试提取的特定元素和属性。

(我提供了一个xpath示例,但它仍然在我的学习列表中... :))