re.sub只替换两次出现

时间:2014-01-17 05:30:45

标签: python regex

我正在使用re.sub,但它没有替换所有出现的内容。

re.sub(r'\b\s+\b', '.', string, re.I)

第一个是输入,第二个是输出。

a b c d e f g
a.b.c d e f g

3 个答案:

答案 0 :(得分:7)

你告诉它只替换2个实例:

>>> re.I
2
>>> re.sub(r'\b\s+\b', '.', string)
'a.b.c.d.e.f.g'

答案 1 :(得分:6)

要使用re.I标志,您应该将其指定为关键字参数(否则它将被解释为count的值,因为count在{{1}之前出现在the signature of re.sub)中。

flags

或者,首先编译你的正则表达式。

>>> string = 'a b c d e f g'
>>> re.sub(r'\b\s+\b', '.', string, flags=re.I)
'a.b.c.d.e.f.g'

答案 2 :(得分:1)

您可以使用:

'.'.join(input_str.split(' '))