при компиляции объекта регулярного выражения, вы, скорее всего, использовать его вместо «статического» повторно методов.
Таким образом, в вашем случае, вы будете использовать sub
скомпилированного регулярного выражения объекта:
s = 'The quic k brown fox jumps over the lazy dog.'
pattern = re.compile(r'\sk\s')
s = pattern.sub('k ', s)
print s
См demo
Выход: The quick brown fox jumps over the lazy dog.
Else, просто замените ваш шаблон декларации в
pattern = r'\sk\s'
Примечание скобки избыточны здесь вы не используете захваченный текст группы.
Кроме того, если есть какие-либо жесткие пробелы в строке ввода, вы можете заменить их с нормальными пространствами первой с
s = s.replace(u'\xa0', u' ')
Another sample code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re
s = u'The quic k brown fox jumps over the lazy dog.'
s = s.replace(u'\xa0', u' ')
pattern = re.compile(ur'\sk\s')
s = pattern.sub(u'k ', s)
print s
отлично работает на моей машине. Не удалось воспроизвести. – TigerhawkT3
Также, почему вы не просто делаете 's = s.replace ('k', 'k')'? – TigerhawkT3
работает на python 3, но не на моем python 2.7.7 (я должен обновить, знаю) – Dleep