Ruby Tips!

RubyのTipsを紹介します

正規表現でマッチした部分文字列を取り出す

最初にマッチした部分文字列全体を取り出す

文字列から正規表現でマッチした最初の部分文字列を取り出すにはString#slice(正規表現)を使う。

p "Apple Orange Mango".slice(/\w+/) #=> "Apple"

正規表現が括弧を含む場合にn番目の括弧にマッチした部分を取り出すにはString#slice(正規表現, n)を使う。

p "Apple Orange Mango".slice(/(\w)\w*/, 1) #=> "A"

マッチした部分文字列をすべて取り出す

文字列から正規表現にマッチした部分文字列をすべて取り出すにはString#scan(正規表現)を使う。このメソッドの返り値は配列である。

p "Apple Orange Mango".scan(/\w+/) #=> ["Apple", "Orange", "Mango"]

正規表現が括弧を含む場合はSring#scan(正規表現)は、括弧にマッチした部分の配列の配列を返す。

p "Apple Orange Mango".scan(/(\w)\w*(\w)/) #=> [["A", "e"], ["O", "e"], ["M", "o"]]