Ruby global match regexp?

后端 未结 3 1261
终归单人心
终归单人心 2020-12-08 03:42

In other languages, in RegExp you can use /.../g for a global match.

However, in Ruby:

\"hello hello\".match /(hello)/

3条回答
  •  再見小時候
    2020-12-08 04:43

    You can use the scan method. The scan method will either give you an array of all the matches or, if you pass it a block, pass each match to the block.

    "hello1 hello2".scan(/(hello\d+)/)   # => [["hello1"], ["hello2"]]
    
    "hello1 hello2".scan(/(hello\d+)/).each do|m|
      puts m
    end
    

    I've written about this method, you can read about it here near the end of the article.

提交回复
热议问题