делает отрицательный просмотр вперед (?!)
частью совпадения .
. /(<((?!<)[^>])*>)/
Таким образом, каждый раз, когда *
точка сопоставляется, она должна соответствовать внешнему виду.
Просмотр вперед работает лучше, чем просмотр назад, поскольку символ, который вам не подходит, является следующий символ, а не предыдущий.
Кроме того, замена ничего совпадающего .
на [^>]
= everything except closing tag
предотвращает выход за пределы закрывающего тега.
Вместо просмотра вперед вы также можете перепишите его на /(<[^><]*>)/
, = match everything between opening and closing tag that does not contain any tag
Я просто перечитал ваш вопрос. Если я правильно понимаю и вы хотите сопоставить и внешний тег, до начала внутреннего тега, вы можете использовать это. Соответствует открытию <
+ любому без тега + закрытию >
, если он существует
<[^><]*>?