【发布时间】:2020-01-22 09:55:38
【问题描述】:
如何删除字符串中多次连续出现的所有个特殊字符?
我可以得到如下代码:
re.sub('\.\.+',' ',string)
re.sub('@@+',' ',string)
re.sub('\s\s+',' ',string)
对于个人,最好是对列表中的所有字符使用循环,例如:
from string import punctuation
for i in punctuation:
to = ('\\' + i + '\\' + i + '+')
string = re.sub(to, ' ', string)
但我相信也有有效的方法。
我试过了:
re.sub('[^a-zA-Z0-9][^a-zA-Z0-9]+', ' ', '\n\n.AAA.x.@@+*@#=..xx000..x..\t.x..\nx*+Y.')
但它会删除除以字母开头的特殊字符之外的所有特殊字符。
字符串可以有不同的连续特殊字符,如99@aaaa*!@#$.,但不能相同,如++--...。
【问题讨论】:
-
re.sub(r'([^\w\s])\1+',' ',text)或re.sub(r'(\W)\1+',' ',text)