s = "[abc]abx[abc]b"
s = re.sub("\[([^\]]*)\]a", "ABC", s)
'ABCbx[abc]b'
В строке s я хочу сопоставить 'abc', когда оно заключено в [], после которого следует 'a'. Таким образом, в этой строке первый [abc] будет заменен, а второй нет.
Я написал шаблон выше, он соответствует:
match anything starting with a '[', followed by any number of characters which is not ']', then followed by the character 'a'.
Однако в замене я хочу, чтобы строка была такой:
[ABC]abx[abc]b . // NOT ABCbx[abc]b
А именно, я не хочу заменять весь подобранный шаблон, а только что-нибудь со скобкой []. Как этого добиться?
match.group (1) вернет содержимое в []. Но как воспользоваться этим в re.sub?