2011-09-13 104 views
6

假設我想匹配一個小寫字母后跟一個大寫字母,我可以做類似匹配區分大小寫Unicode字符串在Python

re.compile(r"[a-z][A-Z]") 

現在我想做爲Unicode字符串一樣的東西即匹配'a'或'yü'等。

試圖

re.compile(r"[a-z][A-Z]", re.UNICODE) 

,但不起作用。

任何線索?

回答

6

這很難用Python正則表達式,因爲當前的實現不支持Unicode屬性快捷方式,如\p{Lu}\p{Ll}

[A-Za-z]當然只會匹配ASCII字母,不管Unicode選項是否設置。

所以直到re模塊更新(或安裝regex package目前正在開發中),您可能需要以編程方式做到這一點(通過串迭代並做上的字符char.islower()/char.isupper()),或指定所有Unicode碼手動點可能是不值得的努力...

+0

這很有用。我只需要處理丹麥信件。因此,添加'æøå'和'ÆØÅ'可能是可以的。 – repoman

相關問題