在进行中文信息处理时,经常会发现有人错误地使用了英文半角的标点符号,给下一步处理造成一些麻烦。如果逐个地判断(使用循环方法)后进行替换,是一件非常费时费力的事情;当出现新的情况时,进行程序的更新也比较麻烦。利用unicode编码的规律和正则表达式中的替换(re.sub)功能,可以较为优雅地达到这个目的。
标点符号在unicode中的编码规律
每个符号都有一个唯一的unicode编码,可以通过内置函数ord()进行查询。如:
>>> ord('?')
63
半角符号符号和全角符号的编码有一个规律:英文符号的unicode编码+65248=中文符号的unicode编码。
从编码转到具体的符号,可以使用函数chr()。如:
>>> chr(63)
'?'
>>> chr(63+65248)
'?'
空格除外,具体可查看网址:https://blog.csdn.net/zinnc/article/details/68524551
正则表达式的sub函数
re.sub共有5个参数:
第一个参数是pattern,即要匹配的模式;
第二个参数是repl,即拟替换成的对象,可以是字符串,也可以是函数;
第三个参数是string,