Как я могу выбрать имя тега и атрибуты И значения этих атрибутов с помощью одного регулярного выражения? - PullRequest
0 голосов
/ 27 мая 2009

У меня есть следующее регулярное выражение из этого поста ( Регулярное выражение для извлечения атрибутов тега ).

(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?

Я создал следующий код PHP, и он прекрасно работает. Я получаю [ id = 'gridview1' и 'id' и 'gridview1' ] из функции preg_match_all ().

$regexp = '/(\S+)=["\']?((?:.(?!["\']?\s+(?:\S+)=|[>"\']))+.)["\']?/';
$text = '<asp:gridview id=\'gridview1\' />';

$matches = null;
preg_match_all($regexp, $text, $matches);

print_r($matches);

Как следует изменить регулярное выражение, чтобы оно также возвращало «asp» и «gridview»? (или «Foo» и «bAR» при использовании:

Ответы [ 2 ]

1 голос
/ 27 мая 2009

([a-zA-Z]+)\:([a-zA-Z]+) будет работать для чего-то вроде Foo: bar

<.*?([a-zA-Z])+.*?\:.*?([a-zA-Z])+.*?\/> будет работать для

Вещи могут быть оптимизированы в зависимости от ваших требований и от того, знаете ли вы, что применяется определенный тип форматирования.

...