如何过滤中文(仅限中文)

时间:2011-08-02 10:02:07

标签: python

我想将包含一些标点符号和全角符号的文本转换为纯中文文本。

maybe_re = re.compile("xxxxxxxxxxxxxxxxx") #TODO
print "".join(maybe_re.findall("你好,这只是一些中文文本..,.,全角"))

# I want out
你好这只是一些中文文本全角

2 个答案:

答案 0 :(得分:4)

Zhon图书馆为您提供了中文标点符号列表:https://pypi.python.org/pypi/zhon

str = re.sub('[%s]' % zhon.unicode.PUNCTUATION, "", "你好,这只是一些中文文本..,.,全角")

这几乎你想要什么。不完全是,因为您提供的句子包含一些非标准的标点符号,例如“。”。无论如何,我认为Zhon可能对其他有类似问题的人有用。

答案 1 :(得分:3)

我不知道将汉字与其他字母分开的好方法,但你可以将字母与其他字符区分开来。使用正则表达式,您可以使用r"\w"(如果您使用的是Python 2,则使用re.UNICODE标志编译)。这将包括数字和字母,但不包括标点符号。

unicodedata.category(c)会告诉你c是什么类型的角色。你的中文字母是“Lo”(没有大小写的字母),而标点符号是“Po”。