re.sub只替换两次出现

use*_*143 4 python regex

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

re.sub(r'\b\s+\b', '.', string, re.I)
Run Code Online (Sandbox Code Playgroud)

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

a b c d e f g
a.b.c d e f g
Run Code Online (Sandbox Code Playgroud)

Azi*_*ari 7

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

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


sen*_*hin 6

要使用该re.I标志,你应该将它指定为关键字参数(否则会被解释为价值count,因为不是count来之前flags的签名re.sub).

>>> 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'
Run Code Online (Sandbox Code Playgroud)

或者,首先编译正则表达式.

>>> string = 'a b c d e f g'
>>> my_re = re.compile(r'\b\s+\b', re.I)
>>> re.sub(my_re, '.', string)
'a.b.c.d.e.f.g'
Run Code Online (Sandbox Code Playgroud)