我正在寻找可以帮助我找到字符串中字符出现次数的Ruby方法(1.9 ...)。我正在寻找所有事件,而不仅仅是第一个事件。
例如:“Melanie是一个菜鸟” 字母'a'有两次出现。 我可以使用什么Ruby方法来找到它?
我一直在使用Ruby-doc.org作为参考,scan
中的String: class
方法引起了我的注意。我的措辞有点难以理解,所以我并没有真正理解scan
的概念。
答案 0 :(得分:133)
答案 1 :(得分:49)
以前提出的问题的这个链接应该有所帮助 scanning a string in Ruby
scan将字符串中所有出现的字符串作为数组返回,所以
"Melanie is a noob".scan(/a/)
将返回
["a","a"]
答案 2 :(得分:28)
您正在寻找String.index()
方法:
返回第一个索引 发生给定的子串或 str中的模式(regexp)。返回零 如果没有找到。如果是第二个参数 存在,它指定位置 在字符串中开始搜索。
"hello".index('e') #=> 1 "hello".index('lo') #=> 3 "hello".index('a') #=> nil "hello".index(?e) #=> 1 "hello".index(/[aeiou]/, -3) #=> 4
答案 3 :(得分:1)
我能够通过将字符串传递给scan
来解决此问题,如另一个答案所示。
例如:
string = 'This is an example'
puts string.count('e')
输出:
2
我还可以通过使用scan并传递一个字符串代替regex来拉出出现的情况,regex与另一个答案稍有不同,但是对于避免regex很有帮助。
string = 'This is an example'
puts string.scan('e')
输出:
['e','e']
弄清楚之后,我在small video guide I created中进一步研究了这些方法。