У меня есть следующий (упрощенный) код - это суть того, что я хотел бы сделать
def replace_todo(m):
m[2] = '*' if value else ' '
return m.group()
Я хочу отредактировать определенную группу в объекте сопоставления, а затем отобразить все совпадение, включая отредактированную часть.
Функция replace_todo вызывается при каждом совпадении с помощью
myCompiledRegex.sub(replace_todo, text)
Текст, который используется в качестве ввода
[ ] mah lalalalalaa
[*] mah lalalalalaa
ожидаемый результат
[*] mah lalalalalaa
[*] mah lalalalalaa
регулярное выражение выглядит так
^(\[( |\*)]) ([a-z][a-z][a-z]) (.*)$
Но, похоже, мне не разрешено редактировать объект совпадения
Когда я пытаюсь выполнить приведенный выше код, я получаю следующую ошибку типа
_sre.SRE_Match' object does not support item assignment
Заранее спасибо:)
EDIT:
Используя решение spicavigo, при преобразовании списка в строку (str (groups)) это выглядит так
[u’[ ]’, '*’, u’jsp’, u’do something’]
вот так это должно выглядеть
[*] jsp do something