如何获得子字符串在文本中出现的次数

时间:2014-02-14 08:07:49

标签: ruby

我想获得文本中子字符串的出现次数。

fullText = 'aa_bb_cc_dd_eeeee_ff'
substr   = 'ee'

我想计算eeaa_bb_cc_dd_eeeee_ff匹配的次数,结果应为4

2 个答案:

答案 0 :(得分:5)

'aa_bb_cc_dd_eeeee_ff'.scan(/(?=ee)/).length
# => 4

答案 1 :(得分:0)

@ sawa的解决方案更有效(而且更通用)但是如果你想在没有正则表达式的情况下做到这一点,这是另一种方式:

'aa_bb_cc_dd_eeeee_ff'.chars.each_cons(2).inject(0) { |c, (i,j)| 
    c+=1 if (i == 'e' && i == j); c 
 }