2012-03-11 129 views
2

下面的正則表達式對我沒有幫助;範圍按相反順序?

[Aa][æ-åÆ-Å].* 

但這個表達式是不是沒有

[Aa][v-zV-Z].* 

只有當AE-A是使用(丹麥carachters)。我感到困惑,爲什麼?

錯誤我得到它

parsing "[Aa][æ-åÆ-Å].*" - [x-y] range in reverse order. 

回答

1

æ是字符碼145,而å是字符碼134,所以你實際上說給我字符碼145和134之間的字符,因爲下限大於上限,所以不起作用。 ÆÅ的情況也是如此。

這裏的字符代碼可以幫助您確定您需要創建,而不是正則表達式的一個圖表:

http://www.asciitable.com/

3

[Z-V]會失敗一樣的 - 你需要排序的字母。 例如:Æ是U + 00C6,Å是U + 00C5,它們應該顛倒過來(或者您可以刪除-,它們之間沒有字母)...

如果可能,嘗試使用Unicode character properties而不是嘗試手動定義範圍。例如,\p{L}將匹配所有字母。