2017-07-27 131 views
2

在Python文件,我碰到下面的代碼片段Python正則表達式用分割W¯¯

>>> re.split('\W+', 'Words, words, words.') 
['Words', 'words', 'words', ''] 
>>> re.split('(\W+)', 'Words, words, words.') 
['Words', ', ', 'words', ', ', 'words', '.', ''] 

我所困惑的是,\ W是不是一個Unicode字字符匹配任何字符,但」來了, '是Unicode字符。括號是什麼意思?我知道它匹配一個組,但模式中只有一個組。爲什麼','也是回報?

回答

2

「任何不是Unicode字符的字符」是作爲的一部分的字符:基本上是字母或數字。

逗號不能是單詞的一部分。

而逗號包含在結果列表中,因爲分割正則表達式被放入括號中(在分割正則表達式中定義一個)。這就是如何re.split的作品(這是你的2代碼片段之間的差異)

+1

我明白了。所以逗號是一個Unicode字符,它不是一個單詞字符。謝謝! –