=~ 演算子とは何を意味するか

調べてみると

https://www.javadrive.jp/rubyregexp/ini/index4.html

正規表現オブジェクト =~ string

オブジェクトが右辺の文字列オブジェクトにマッチした場合には、マッチした位置のインデックスを返します。インデックスは対象の文字列の先頭の文字を0とし、パターンにマッチした場合の先頭の文字の位置です。マッチしなかった場合は「nil」が返されます。

 

と出てくる。よくわからなかったので試してみた。

ついでに正規表現/^ /とmatchメソッドの見直しも行なってみた

 

aa = "abc333333"
bb = "333abc333333"


puts aa =~ /abc/

puts bb =~ /abc/

puts aa =~ /xxx/

puts aa.match?(/^abc/)

puts bb.match?(/^abc/)

puts bb.match?(/xxx/)

puts aa.match(/abc/)

puts bb.match(/abc/)

puts bb.match(/xxx/)

if aa =~ /^abc/
  puts "hello" 
end

if bb =~ /abc/
  puts "hello" 
end

if aa.match?(/^abc/)
  puts "hello" 
end

if bb.match(/abc/)
  puts "hello" 
end

if bb.match(/xxx/)
  puts "hello" 
end

こうコードを入力して実行してみたところ

 

$ ruby practice.rb

0

3

 

true

false

false

abc

abc

 

hello

hello

hello

hello

このように出力された