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.