regex: HTML-тег, содержащий все атрибуты - PullRequest
0 голосов
/ 18 декабря 2018

Я хочу сопоставить теги HTML и содержащиеся в них атрибуты.Попробовал следующее regex :

/<(\w+)(?: +(\w+)="[\w,;.:\-#'+~*?=&%\$!\/'\]\[@\(\)\s]*")*/gm

На этом входе:

<p><li first="1" second="2" third="3"></li><b><br/><p><li first="1" second="2" third="3"></li><b><br/></p>
<p><li first="1" second="2"></li><b><br/><p><li first="1" second="2"></li><b><br/></p>
<p><li first="1"></li><b><br/><p><li first="1"></li><b><br/></p>

У меня только один атрибут.Если в теге более одного атрибута, я всегда получаю последний.Первая строка возвращает third, вторая строка возвращает second, а последняя строка возвращает first для group 2.

Результат для строки номер один:

p li third b br p li third b br

Нодолжно быть:

p li first second third b br p li first second third b br

Как получить все атрибуты для тега?

1 Ответ

0 голосов
/ 18 декабря 2018

Прежде всего, я думаю, что вы можете использовать [^"] вместо [\w,;.:\-#'+~*?=&%\$!\/'\]\[@\(\)\s]

К сожалению, с помощью регулярных выражений невозможно собрать все аргументы в вашем случае.Дальнейшее объяснение смотрите в этом посте: Как захватить несколько повторных групп?

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