s = '*\/:?"<>|' #这9个字符在Windows系统下是不可以出现在文件名中的 str1 = '\巴拉<1"!11【】>1*hgn/p:?|' #样例
方法1.
提取感兴趣(想要)的字符
a = re.findall('[\u4e00-\u9fa5a-zA-Z0-9]+',str1,re.S) #只要字符串中的中文,字母,数字
a = "".join(a)
print(a)
结果如下:
巴拉1111hgnp
方法2.
只去除不想要的,比如只去除不能作为文件名的字符
a = re.findall(r'[^\*"/:?\\|<>]',str1,re.S) a = "".join(a) print(a)
结果如下:
巴拉1!11【】1hgnp
方法三、
因为训练word2vec模型,需要处理数据集发现其中有很多特殊符号,所以使用python3python3进行了数据预处理,去除了预料中的特殊符号,这里使用unicode加正则表示式来进行相关的匹配。
import re
string = "12345464我不是药神123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》"
print(string)
12345464我不是药神123456abcdefgABCVDFF?/ ,。,.:;:''';'''[]{}()()《》
sub_str = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])","",string)
print(sub_str)
12345464我不是药神123456abcdefgABCVDFF
正则表达式的使用
函数 说明
sub(pattern,repl,string) 把字符串中的所有匹配表达式pattern中的地方替换成repl
[^**] 表示不匹配此字符集中的任何一个字符
sub(pattern,repl,string) 把字符串中的所有匹配表达式pattern中的地方替换成repl
[^**] 表示不匹配此字符集中的任何一个字符
\u4e00-\u9fa5 汉字的unicode范围
\u0030-\u0039 数字的unicode范围
\u0041-\u005a 大写字母unicode范围
\u0061-\u007a 小写字母unicode范围
琼杰笔记![Python 问题解决 | urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed-琼杰笔记](https://www.zhangqiongjie.com/wp-content/uploads/2020/02/python2-220x150.jpg)






评论前必须登录!
注册