Ruby

正規表現と組み合わせて使うと便利なメソッド

・備忘録として。
・RubyのStringクラスのインスタンスメソッド。
・いずれのメソッドも引数に文字列、または正規表現オブジェクトを受け取ることができる。

scan(pattern)

・引数に正規表現を渡して、マッチした部分を「配列」にして返す

Example

text = "my name is toshiki"
p text.scan(/t.+/)
=> ["toshiki"]

・正規表現にマッチした部分を、Rubyのコンソールなどでサクッと確認したい時に利用するといいと思う。
・ちゃんと確認したい時は、http://rubular.com などのサイトを利用するのが良い。

slice(pattern)

・引数に正規表現を渡して、マッチした部分を「文字列」にして返す

Example

text = "my name is toshiki"
p text.slice(/t.+/)
=> "toshiki"

・scanとの違いは、返り値が「文字列」なのか、「配列」なのかの違い。

gsub(pattern,replacemant)

・第一引数に正規表現を渡す。
・正規表現にマッチした文字列を、第二引数の文字列に置換する。
・返り値は「文字列」

Example

text = "my name is toshiki"
p text.gsub(/t.+/,"kikuchi")
=> "my name is kikuchi"

・キャプチャ機能()を使用すると、\1\2の連番で参照可能。
・第二引数に\1\2などを渡すことで、第一引数でキャプチャした文字列を参照することができる。

Example

text = "my name is toshiki"
p text.gsub(/(t.+)/,'\1 kikuchi')
=> "my name is toshiki kikuchi"

・ちなみにgsubglobal substituteの略。