Выделение всех тегов
Запишем правила разбора по-русски:
- Захватим одну или более букву алфавита
- Завершим захватывать совпадения
- Захватим 0 или более символов, не совпадающих с набором символов '>'
- Захватим подстроку '>'
- Начнём захватывать символы в последовательность
- Захватим 0 или более символов, не совпадающих с набором символов '>'
- Завершим захватывать совпадения
- <
- (
- \w+
- )
- [^>]*
- >
- (
- [^<]*
- )
- захватывает все теги, а не только парные.
- некорректно отрабатывает вложенные теги.
У нас получилось следующее выражение:
<(\w+)[^>]*>([^<]*)
Оно имеет 2 недостатка:
Содержание раздела
Теперь, когда задача точно описана, можно приступить к записи её в виде регулярного выражения: