=~ 演算子とは何を意味するか
調べてみると
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
このように出力された