我有以下句子,我想删除所有标点符号。
首页 » 政策法规 » 正文吉林省实施《中华人民共和国老年人权益保障法》若干规定 发布时间: 2008-01-04
我想删除所有中文标点符号,包括空格“”。以下是我的代码:
line = line.decode("utf8")
line = re.sub("[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*():;《)《》“”()»〔〕-]+".decode("utf8"), "".decode("utf8"),line)
但是,我仍然没有删除空白空间。我想知道是否有更简单的方法来删除中文标点符号?
答案 0 :(得分:0)
因为大多数中文标点符号为 unicode ,我们必须将字符串转换为 unicode 才能删除中文标点符号。
# !/usr/bin/env python2
# -*- coding:utf-8 -*-
import re
punc = "!?。。"#$%&'()*+,-/:;<=>@[\]^_`{|}~⦅⦆「」、、〃》「」『』【】〔〕〖〗〘〙〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏."
punc = punc.decode("utf-8")
line = "测试。。去除标点。。,、!"
print re.sub(ur"[%s]+" %punc, "", line.decode("utf-8"))
答案 1 :(得分:-1)
re.sub是sub(pattern, repl, string, count=0, flags=0)
作为您的代码,pattern
是unicode,repl
也是unicode(实际上,不需要解码),
但是string
是utf-8编码的字符串,而不是 unicode 。
试试这个,
print re.sub(ur"[\s+\.\!\/_,$%^*(+\"\']+|[+——!,。?、~@#¥%……&*():;《)《》“”()»〔〕-]+", "", s.decode("utf8"))