Когда вам нужно сопоставить [[ : ]]
-подобные строки, вы должны сначала сопоставить [[
, затем любые 0+ символов, которые не являются :
и не запускают последовательность начала / закрытия, то есть [[
и]]
, тогда вам нужно сопоставить символ :
, а затем любые 0+ символов до первого (крайнего левого) вхождения ]]
.
Шаблон, который вы можете использовать:
\[\[(?:(?!\[\[|]])[^:])*:.*?]]
См. Демонстрационную версию regex .Не забудьте использовать re.DOTALL
или re.S
, чтобы .
соответствовал нескольким строкам.
Подробности
\[\[
- [[
substring (?:(?!\[\[|]])[^:])*
- жадный жетон , соответствующий любому символу, кроме :
(см. [^:]
отрицательный класс символов), 0+ раз (см. *
), который не запускает последовательности [[
и ]]
:
- двоеточие .*?
- любые 0+ символов, как можно меньше ]]
- подстрока ]]
.