\ W在模式re.U中意味着什么?

时间:2013-11-18 03:20:27

标签: python regex split

我有一个名为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(默认值)之间有什么区别?

1 个答案:

答案 0 :(得分:1)

\W表示,不是单词。正则表达式将匹配任何不被视为单词的内容。

来自文档,

  

如果未指定LOCALE和UNICODE标志,则匹配any   非字母数字字符;这相当于集合   [^ A-ZA-Z0-9_]。使用LOCALE,它将匹配不在集合中的任何字符   [0-9_],并且未定义为当前区域设置的字母数字。如果   UNICODE已设置,这将匹配除[0-9_]以外的任何内容   字符在Unicode字符中被分类为非字母数字   属性数据库。