Python Regex: только заменить захваченную группу - PullRequest
0 голосов
/ 28 марта 2019

У меня есть регулярное выражение, соответствующее ключу "псевдонимы", который является существующим списком в файле уценки, и фиксирует закрывающую скобку как группу.

RE_ALIASES = re.compile(r'\s*---\n.*aliases:\s?\[.*(\]|\n\]).*\n---.*', re.DOTALL)

Как заменить эту захваченную группу намой собственный текст?

т.е.

---
...
aliases: [
   hello,
   world
]
---
...

должно быть

---
...
aliases: [
   hello,
   world,
   inserted
]
---
...

В этом случае первая группа \n] заменяется на ,\n inserted\n]

1 Ответ

1 голос
/ 28 марта 2019

Я думаю, вы должны использовать функцию re.sub

Вот как это будет работать для вашего случая:

(Предположим, вы сохранили исходную строку как initial_string)

final_string = re.sub('(\\]|\\n\\]).*', ',\n\tinserted\n\t]', initial_string)

Если вы напечатаете "final_string", это показывает:

---
...
aliases: [
        hello,
        world,
        inserted
        ]
---
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...