我有以下代码:
import re
s = 'The quic k brown fox jumps over the lazy dog.'
pattern = re.compile(r'(\sk\s)')
s = re.sub(pattern, 'k ', s)
我希望's'得到最终结果“快速的棕色狐狸跳过懒狗。但是,最终的字符串结果保持不变。
我应该改变什么?
答案 0 :(得分:1)
编译正则表达式对象时,最有可能使用它而不是"静态" re 方法。
因此,在您的情况下,您将使用已编译的正则表达式对象的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.
否则,只需将模式声明替换为
即可pattern = r'\sk\s'
请注意,括号在这里是多余的,您没有使用捕获的组文本。
此外,如果输入字符串中有任何硬空格,您可能希望先用普通空格替换它们
s = s.replace(u'\xa0', u' ')
#!/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