javascript — только слова, совпадающие с определенными тегами (Regex-JS)

Я работаю над написанием своего собственного парсера BBCode. я ОЧЕНЬ новичок в написании регулярных выражений.

Я пытаюсь сделать так, чтобы мое регулярное выражение соответствовало всем тегам, кроме случаев, когда они находятся внутри code или же quote тег. Вот что я имею в виду:

[b] This text will be bolded [/b]

[code][b] This text will NOT be bolded [/b][/code]
[b] This text will NOT be bolded [/b]

Проблема в том, что он соответствует тексту, который НЕ ДОЛЖЕН быть жирным шрифтом …

Вот мое регулярное выражение:

/((?!\[code\]) \[b\](.*)\[\/b\] (?!=\/code\]))/gi

И вы можете найти рабочий пример здесь: https://regex101.com/r/oI3mN8/2

Итак, мой вопрос, как я могу заставить это взять правильные вещи?

Постскриптум Как я могу заставить его захватить каждый кусок? Прямо сейчас это захватывает первое и последнее. Пример:

[b] This text should be bolded [/b]
This text should not be bolded, but it still is.
[b] This text should be bolded again [/b]

Почему-то просто захватывает первый и последний теги, почему?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …