返回Ruby中字符串中所有正则表达式出现的索引

时间:2015-07-19 22:22:31

标签: ruby

如何在字符串中获取所有出现的正则表达式的索引(或位置)数组?

example_string= "hello how are you?

我想获得regexp /e/

的数组[1,12]

2 个答案:

答案 0 :(得分:7)

这是获取匹配索引数组的一种方法:

example_string = "hello how are you?"

example_string.enum_for(:scan, /e/).map { Regexp.last_match.begin(0) }

# => [1, 12]

希望它有所帮助!

答案 1 :(得分:4)

这是@ Zoren的优秀答案的变体:

example_string = "hello how are you?"

example_string.gsub(/e/).with_object([]) { |_,a| a << Regexp.last_match.begin(0) }
 #=> [1, 12]