方法一:使用punctuation。

punctuation其中定义的是所以英文的标点符号。

add_punc相当于是自定义的,

如果只要去掉英文,那么if判断的地方,只保留add_punc即可,如果英文的标点符号也想去掉,就使用punctuation

比如,要去掉数字:add_punc=‘0123456789’ 即可。字母也同理。

代码:

from string import punctuation
str = "《三国演义》中的“水镜先生”是司马徽56585622"
add_punc='0123456789' # 自定义--数字
all_punc = punctuation + add_punc
temp = []
for c in str:
    if c not in all_punc :
        temp.append(c)
newText = ''.join(temp)
print(newText)
#输出结果:《三国演义》中的“水镜先生”是司马徽

同理 这种方式可以去掉任何特定的字符。请参考另一篇文章:去掉字符串中的标点符号

 

方法二:

使用re.sub 函数

import re

str="aksjnekljfklen"

temp = re.sub('[a-zA-Z]','1',str)

输出结果就都是1。

注意的是,sub需要import re; 第二,他的参数使用的是单引号,第三,他的第一个参数,也 就是【a-z】那部分是正则表达式的写法。