如何删除除26个字母之外的所有字母,以及。 ,()'“?!来自Python中的字符串?

时间:2019-02-08 03:39:33

标签: python regex string parsing

我有:

string = 'Here it is, your gif! am a bot. [^(Report an issue)] ❤ that bot,I ❤ ur mom **YEET**  ,GOTTEM!"'

然后我尝试:

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

那给了我:

'Here it is your gif am a bot Report an issue that bot I ur mom YEET GOTTEM'  

但是我想要这样:

'Here it is, your gif! am a bot. (Report an issue) that bot,I ur mom YEET ,GOTTEM!"'

只有26个字母,没有数字,只有该组中最常用的符号:.,()'"?!

2 个答案:

答案 0 :(得分:3)

对要接受的事物进行字符分类(用Role并反转(用前导User使其变成[]):

^

答案 1 :(得分:1)

将其用于您的正则表达式:[^stuff]

小节定义了您要选择的元素的集合,最前面的插入号定义了对内部元素的否定。

因此离开你

string = re.sub(r'[^a-zA-Z.,()\'"?! ]+', '', string)