我将如何使用python执行此操作:
如果我有一个格式如下的字符串:
A..a.b.c
Run Code Online (Sandbox Code Playgroud)
使它像:
A.a.b.c
Run Code Online (Sandbox Code Playgroud)
但我事先不知道我有多少个点?
这就像linux中的tr -s函数
如果您想要一般格式,只用其中一个字符替换任何重复字符序列:
>>> import re
>>> s='aaa,,bb,c'
>>> re.sub(r'(.)(\1+)', r'\1', s)
'a,b,c'
Run Code Online (Sandbox Code Playgroud)
如果您只想限制某些字符:
>>> re.sub(r'([\w])(\1+)', r'\1', s)
'a,,b,c'
>>> re.sub(r'([,])(\1+)', r'\1', s)
'aaa,bb,c'
Run Code Online (Sandbox Code Playgroud)
你的例子:
>>> s='A..a.b.c'
>>> re.sub(r'([.])(\1+)', r'\1', s)
'A.a.b.c'
Run Code Online (Sandbox Code Playgroud)
正则表达式替换很好地找到模式(重复点)并替换它们(用一个点):
>>> import re
>>> re.sub(r'\.+', '.', 'A..a.b.c')
'A.a.b.c'
Run Code Online (Sandbox Code Playgroud)