Как использовать регулярное выражение Python для замены с помощью захваченной группы?

Предположим, я хочу изменить синюю собаку и синюю кошку в синих шляпах на серая собака и серая кошка носили синие шляпы .

С помощью sed я мог сделать это следующим образом:

$ echo 'the blue dog and blue cat wore blue hats' | sed 's/blue \(dog\|cat\)/gray \1/g'

Как я могу сделать аналогичную замену в Python? Я пробовал:

>>> import re
>>> s = "the blue dog and blue cat wore blue hats"
>>> p = re.compile(r"blue (dog|cat)")
>>> p.sub('gray \1',s)
'the gray \x01 and gray \x01 wore blue hats'
51
задан zekel 9 January 2018 в 08:27
поделиться