2017-05-31 31 views
1

使用Ruby 2.4,如何計算字符串中Unicode字母的實例數?我想:如何統計我的字符串中任何Unicode字母的實例

2.4.0 :009 > string = "a" 
=> "a" 
2.4.0 :010 > string.count('\p{L}') 
=> 0 

,但它顯示爲0,它應該返回1.

我想用上面的表達,而不是「AZ」,因爲「AZ」將不包括之類的東西重音e。

+1

你可以嘗試'掃描'和'計數'? 'string.scan(/ \ p {L} /)。count' –

+0

返回預期結果。謝謝 – Dave

+0

「它應該返回1」 - 爲什麼?根據文件,你正在計算'','','','',''和'''的數量。沒有,ergo,它應該返回'0'。 –

回答

0

你可以嘗試使用String#scan,通過你的\p{L}正則表達式,然後鏈count方法:

string = "aá" 
p string.scan(/\p{L}/).count 
# 2 
0

這是不創建一個臨時數組的方式。

str = "Même temps l'année prochaine." 

str.size - str.gsub(/[[:alpha:]]/, '').size 
    #=> 24 

的POSIX括號表達式[[:alpha:]]相同\p{Alpha}(又名\p{L})。 請注意,

str.gsub(/[[:alpha:]]/, '') 
    #=> " ' ." 
相關問題