我想将包含一些标点符号和全角符号的文本转换为纯中文文本。
maybe_re = re.compile("xxxxxxxxxxxxxxxxx") #TODO
print "".join(maybe_re.findall("你好,这只是一些中文文本..,.,全角"))
# I want out
你好这只是一些中文文本全角
答案 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”。