какое правильное выражение для этого? - PullRequest
0 голосов
/ 10 ноября 2010

что такое регулярное выражение для такой задачи?-> заменить "[[...:" на "[["

То есть я хочу заменить * некоторый текст * внутри [[...: на [[.

]

Проблема с моим кодом в том, что он удаляет * текст * внутри первого [[]]

>>> string = "Some text here [[dont remove me]] and some extra text [[remove me:and let this]] here."
>>> clean = re.sub(r'\[\[.+:', '[[', string)
>>> clean
'Some text here [[and let this]] here.'
>>>

Ответы [ 2 ]

1 голос
/ 10 ноября 2010
re.sub(r'\[\[[^:\]]+:', '[[', string)

[^:\]] используется вместо . для ограничения того, что удаляемый материал ограничен тегом.

0 голосов
/ 10 ноября 2010

Вместо . используйте выражение, которое исключает : и закрывающий ]]:

r'\[\[(?:[^:\]]|\][^\]])*:'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...