2011-04-19 30 views
1

上面「a」的變音符號是不是應該被正則表達式去掉?如何獲得Ruby 1.9 regexp支持 p {Nonspacing_Mark}?

"hǎo".gsub(/\p{Nonspacing_Mark}/, '') 
=> "hǎo" 

"hǎo".gsub(/\p{Mn}/, '') 
=> "hǎo" 

更新:

我種從它的工作原理在Java中得到它。

Normalizer.normalize("hǎo", Form.NFD).replaceAll("\\p{Mn}+", "") 

我需要首先進行歸一化,將「ǎ」分成「a」和變音符號。

+0

看看這個http://stackoverflow.com/questions/3571480/converting-chinese-to-pinyin – abi1964 2011-04-19 11:29:11

+0

紅寶石是否知道你的源代碼是UTF-8? – tchrist 2011-04-19 14:55:28

+0

你是否想要這個邪惡,因爲你不知道如何比較兩個字符串的「重音不敏感」時尚? – tchrist 2011-04-23 22:42:07

回答