Соответствующие атрибуты регулярного выражения для элемента html - PullRequest
0 голосов
/ 12 июля 2010

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

Вот код:

<?php
    $subject = '<font face="arial" size="1" color="red">hello world!</font>';
    $find= '/<(?P<tag>\w+)\s+((?P<attr>\w+)=(?P<value>[^\s""\'>]+|"[^"]*"|\'[^\']*\')\s*)*\/?>/si';

    preg_match_all( $find, $subject, $matches );
?>

Может ли кто-нибудь помочь мне?

1 Ответ

1 голос
/ 12 июля 2010

Некоторые важные моменты:

  • Вы не должны использовать регулярные выражения для анализа HTML.PHP имеет много превосходных библиотек разбора HTML.
  • Группа, которая повторно захватывает в совпадении, сохраняет только последний захват.
    • Одним заметным исключением является регулярное выражение .NET

Ссылки

Смежные вопросы

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