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。
使用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。
你可以嘗試使用String#scan
,通過你的\p{L}
正則表達式,然後鏈count
方法:
string = "aá"
p string.scan(/\p{L}/).count
# 2
這是不創建一個臨時數組的方式。
str = "Même temps l'année prochaine."
str.size - str.gsub(/[[:alpha:]]/, '').size
#=> 24
的POSIX括號表達式[[:alpha:]]
相同\p{Alpha}
(又名\p{L}
)。 請注意,
str.gsub(/[[:alpha:]]/, '')
#=> " ' ."
你可以嘗試'掃描'和'計數'? 'string.scan(/ \ p {L} /)。count' –
返回預期結果。謝謝 – Dave
「它應該返回1」 - 爲什麼?根據文件,你正在計算'','','','',''和'''的數量。沒有,ergo,它應該返回'0'。 –