JavaScript Разбор текста регулярного выражения

У меня есть строка, подобная следующей

~~<b>A<i>C</i></b>~~/~~<u>D</u><b>B</b>~~has done this.

Я пытаюсь получить текст внутри тега . я стараюсь

<b>(.+)</b>

Но я получаю <b>A<i>C</i></b>~~/~~<u>D</u><b>B</b>, но мне нужно <b>A<i>C</i></b> как первый матч и <b>B</b> как второй матч

Может кто-нибудь, пожалуйста, помогите?

1 ответ

Решение

Вам нужно использовать не жадный квантификатор:

<b>(.+?)</b>

Это обеспечит остановку матча на первом </b> это находит.

Тем не менее, я бы обычно рекомендовал использовать правильный синтаксический анализатор XML или HTML для такого рода вещей. Регулярные выражения просто недостаточно мощны для обработки рекурсивной структуры XML.

Другие вопросы по тегам