如果字符串作为单个字符存在,如何从字符串中删除特殊字符。我正在尝试一个推特作者分类模型,我的想法是一些人使用特殊字符作为商标,这可以帮助模型更好地判断,例如
P!nk
A$AP
是两位独立歌手的商标。我想删除单个和重复的特殊字符,例如
whatt??
This is Good. I want both dots removed.
I'm thinking....
但是不想删除#hashtag_for_life
或类似的东西
我用过
re.sub(r'([\W_])\1+',' ','hi my % na$me is @shady #for_life')
但在个人方面失败了。有人能提供一个解决方案吗
编辑:示例
我怎样才能转换
'p!nk & A$AP are 2 singers..... what? are the b0th rappers? ? ? NO!! #singer ##rapper @shady'
到
'p!nk A$AP are singers what are the b0th rappers NO #singer #rapper @shady'
这意味着个别数字消失,个别特殊字符消失,尾部特殊字符消失,重复特殊字符被更改为单个特殊字符,这些字符在中间或在单词的开头。p>
请您试试下面的菜单好吗
输出:
(?<=\s)[\W\d](?=(\s|$))
匹配单个非字母或数字 由空格包围的字符或在行尾李>(?<=\w)\W+(?=(\s|$))
匹配以下单个非字母字符 一句话李>(\W)\1+(?=\w)
匹配两个或多个连续的非字母字符 在一个词之前李>相关问题 更多 >
编程相关推荐