用 python 中的一个替换多次出现的任何特殊字符

replace multiple occurrences of any special character by one in python

我有一个像这样的字符串:

string = "happy.....!!!"

我想要这样的输出:

new_string = "happy.!"

我知道如何替换多次出现的任何特殊字符。可以这样操作:

line = re.sub('\.+', '.', line)

但我想将它替换为所有特殊字符,如 "、./\ 等。 一种方法是为每个特殊字符编写它。 但是想知道是否有一种简单的方法可以将所有特殊字符写在一行中。

您可以使用\W来匹配任何非单词字符:

line = re.sub(r'\W+', '.', line)

如果你想用相同的特殊字符替换然后使用:

line = re.sub(r'(\W)(?=)', '', line)

我想你是这个意思,

line = re.sub(r'(\W)+', r'', line)

https://regex101.com/r/eM5kV8/1