如何计算Ruby中两个字符之间的字符数?

时间:2018-05-21 09:38:21

标签: ruby

在Ruby中,有一种简单的方法可以计算以下任何字符串中大括号之间N的数量吗?

{NNN}YYY{XXX}NNNN{YYY}

{XXX}NNN{NN}XXX{YYY}

{XXX}NNNN{YY}AAAA{NNNNNN}

现在我得到了:

def count_chars(string)
  string.index('N}') - string.index('{N')
end

有更好的方法吗?

3 个答案:

答案 0 :(得分:5)

你可以用正则表达式做到这一点......

def count_chars(string)
  string.match(/{(N*)}/)[1].length
end

答案 1 :(得分:4)

出于好奇:

'{NNN}{XXX}{YYY}'[/(?<={)N+(?=})/]&.length.to_i
#⇒ 3

答案 2 :(得分:1)

我不明白为什么你不能用这个:

your_string.scan(/N/).count

如果这不是您想要的,请再详细说明您的问题。