我有一个名为gugong.txt的文本文件,其中包含一些中文和英文单词。我想提取中文单词。代码如下:
note_file = open('gugong.txt','rb')
note_file = open('gugong.txt','rb')
content = note_file.read()
print type(content)
note_file.close()
sentences = re.split("\W+|[a-zA-Z0-9]+", content, 0, re.UNICODE)
我想问一下:\ W在最后一行的模式re.U中是什么意思?它与\ u4E25这样的中文单词匹配吗? re.U和re.L(默认值)之间有什么区别?
答案 0 :(得分:1)
\W
表示,不是单词。正则表达式将匹配任何不被视为单词的内容。
来自文档,
如果未指定LOCALE和UNICODE标志,则匹配any 非字母数字字符;这相当于集合 [^ A-ZA-Z0-9_]。使用LOCALE,它将匹配不在集合中的任何字符 [0-9_],并且未定义为当前区域设置的字母数字。如果 UNICODE已设置,这将匹配除[0-9_]以外的任何内容 字符在Unicode字符中被分类为非字母数字 属性数据库。