re.sub 仅替换两个匹配项



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

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

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

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

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

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

要使用 re.I 标志,您应该将其指定为关键字参数(否则它将被解释为 count 的值,因为countre.sub的签名中flags之前)。

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

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

>>> string = 'a b c d e f g'
>>> my_re = re.compile(r'bs+b', re.I)
>>> re.sub(my_re, '.', string)
'a.b.c.d.e.f.g'

您可以使用:

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

最新更新