Как работает шаблон
| Часть | Значение |
|---|---|
< | Открывающая угловая скобка |
\/? | Необязательный слеш для закрывающих тегов |
[A-Za-z][A-Za-z0-9-]* | Имя тега, включая пользовательские элементы вроде my-card |
(?:\s[^<>]*)? | Необязательные атрибуты |
\/?> | Необязательный слеш для самозакрывающихся тегов и закрывающая скобка |
Примеры кода
JavaScript
const matches = text.match(/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/g) ?? [];Python
import re
matches = re.findall(r'</?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?/?>', text)PHP
preg_match_all('/<\/?[A-Za-z][A-Za-z0-9-]*(?:\s[^<>]*)?\/?>/', $text, $m);
$matches = $m[0];
Примечания и ограничения
Подходит для быстрого поиска и подсветки, но регулярные выражения не могут надёжно разбирать HTML (комментарии, скрипты, атрибуты, содержащие символ >). Для важных задач используйте DOMParser или полноценный парсер. Чтобы удалить теги и сохранить текст, см. удаление HTML-тегов с помощью регулярных выражений.
Тестер регулярных выражений
Введите шаблон и смотрите, как совпадения подсвечиваются прямо в тестовом тексте.