проблема шаблона php preg_match, шаблон регулярного выражения - PullRequest
0 голосов
/ 18 апреля 2010
<tr  id='ieconn3' >
  <td><table width='100%'><tr><td valign='top'><table width='100%'><tr><td>aaaaa
<br>&nbsp;</td></tr><tr><td> 

Я хочу получить aaaaa часть до <br> или </td>. Я пробовал много моделей, но не сработало. любая помощь?

Ответы [ 2 ]

0 голосов
/ 18 апреля 2010

Как указал Гамбо, это приведет к гигантскому беспорядку, если вы будете настаивать на использовании регулярного выражения для этого. Тем не менее, если вы уверены, что HTML-код не имеет шансов, этот поможет:

/<tr><td>(.*)<\/td><\/tr>/

используйте так:

$string = "<tr  id='ieconn3' >
<td><table width='100%'><tr><td valign='top'><table width='100%'><tr><td>aaaaa<br>&nbsp;</td></tr><tr><td>";

$matches = array();
preg_match("/<tr><td>(.*)<\\/td><\\/tr>/", $string, $matches);

print($matches[1]);
0 голосов
/ 18 апреля 2010

Не следует пытаться использовать регулярные выражения для разбора HTML, поскольку HTML не является регулярным языком и поэтому не может быть описан с помощью регулярных выражений. Вместо этого используйте правильный HTML-анализатор.

Если вы используете XHTML, вы можете использовать SimpleXML , чтобы проанализировать его как XML и запросить его с помощью SimpleXMLElement :: xpath . А для документов HTML вы можете использовать Simple HTML DOM Parser . И DOMDocument может обрабатывать как XHTML, так и HTML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...