用一个空格替换任意数量的空格

时间:2013-11-18 21:49:41

标签: python regex replace

有没有办法使用replaceregex表示任意数量的空白区域(空白而且还有标签)?我正在尝试以下方法将多个空格的任何扩展收缩为一个,但它不起作用:

mystring.replace('\s+', ' ')

5 个答案:

答案 0 :(得分:4)

您不能在replace()方法中使用正则表达式来表示字符串,您必须使用re module

import re
mystring = re.sub(r'\s+', ' ', mystring)

请注意字符串文字前面的r前缀,这样可以确保正则表达式中的反斜杠得到正确解释。它实际上并没有区别,但对于不同的转义序列,它可能会导致严重的问题。例如'\b'是退格符,但r'\b'是反斜杠,后跟'b',用于匹配正则表达式中的单词边界。

答案 1 :(得分:1)

尝试使用re.sub

import re
result = re.sub('\s+', ' ', mystring)

答案 2 :(得分:1)

您可以使用str.splitstr.join来使用您需要的正则表达式re.sub

>>> ' '.join('f  o  o\t\t bar'.split())
'f o o bar'

答案 3 :(得分:0)

尝试这样的事情

import re
re.sub('\s+',' ',mystring)

答案 4 :(得分:0)

就像这样。

import re
print re.sub(r'\s+', '_', 'hello there')
# => 'hello_there'
相关问题