电脑网站打不开是什么原因造成的,什么是网站设计与运营,建网站的价格,网站建设疑问Python str.replace(old, new[, max]) 方法把字符串str中的 old#xff08;旧字符串#xff09; 替换成 new(新字符串)#xff0c;如果指定第三个参数max#xff0c;则替换不超过 max 次。
如果非要用replace()函数来实现要这样写#xff1a;
import string
m l
forc inst…Python str.replace(old, new[, max]) 方法把字符串str中的 old旧字符串 替换成 new(新字符串)如果指定第三个参数max则替换不超过 max 次。
如果非要用replace()函数来实现要这样写
import string
m l
forc instring.punctuation:
m m.replace(c,)
更简便的方法是用translate()代码如下
importstring
m l.translate(None, string.punctuation)
中文文本中可能出现的标点符号来源比较复杂通过匹配等手段对他们处理的时候需要格外小心防止遗漏下面小编带来了Python处理中文标点符号大集合感兴趣的朋友跟随脚本之家小编一起看看吧 。中文文本中可能出现的标点符号来源比较复杂通过匹配等手段对他们处理的时候需要格外小心防止遗漏。以下为在下处理中文标点的时候采用的两种方法:
中文标点集合比较常见标点有这些
、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘‛“”„‟…‧﹏.
调用zhon包的zhon.hanzi.punctuation函数即可得到这些中文标点。
如果想用英文的标点则可调用string包的string.punctuation函数可得到
!#$%\()*,-./:;?[\\]^_{|}~
因此比如需要将所有标点符号去除可以进行以下操作importrefromzhon.hanzo importpunctuationline 测试。。去除标点。。printre.sub([{}].format(punctuation), , line.decode(utf-8)) # 需要将str转换为unicode
当然如果想去除重复的符号而只保留一个那么可以用\1指明比如re.sub(ur([{}]).format(punctuation), \1, line.decode(utf-8))
你也可以手工指定这些标点符号
punctuation 、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘‛“”„‟…‧﹏
re_punctuation [{}].format(punctuation)
line re.sub(re_punctuation, , line)
可以通过直接指定unicode码范围的办法来strip比如:
去除所有半角全角符号只留字母、数字、中文
def remove_punctuation(line):
rule re.compile(ur[^a-zA-Z0-9\u4e00-\u9fa5])
line rule.sub(,line)
return line
汉字的范围为”\u4e00-\u9fa5“这个是用Unicode表示的所以前面必须要加”u“字符”r“的意思是表示忽略后面的转义字符这样简化了后面正则表达式里每遇到一个转义字符还得挨个转义的麻烦
最后可以组合成为一个函数
def remove_punctuation(line, strip_allTrue):
if strip_all:
rule re.compile(ur[^a-zA-Z0-9\u4e00-\u9fa5])
line rule.sub(,line)
else:
punctuation 、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘‛“”„‟…‧﹏
re_punctuation [{}].format(punctuation)
line re.sub(re_punctuation, , line)
return line.strip()
清洗完毕后有时候我们希望按照多个标点符号来分割 比如只要遇到中文或英文的逗号和句号等符号就分割可以直接用translate把这些符号翻译为统一的分隔符再split:
strip_chars 。.,《》[]〖〗“”
single_line single_line.translate(str.maketrans(dict.fromkeys(strip_chars, #)))
single_line single_line.split(#)
总结
以上所述是小编给大家介绍的Python处理中文标点符号大集合希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。