如何计算字符串中任何Unicode字母的实例

时间:2017-05-31 19:58:01

标签: ruby string unicode count

使用Ruby 2.4,如何计算字符串中Unicode字母的实例数?我在尝试:

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

但它显示0,它应该返回1.

我想使用上面的表达式而不是“a-z”,因为“a-z”不会涵盖重音e的内容。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用String#scan,传递\p{L}正则表达式,然后链接count方法:

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

答案 1 :(得分: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:]]/, '')
  #=> "  ' ."