!~をmatch?に変える

最近!~とか正規表現関連のことばっかりの記述をしている気がする

 

とりあえずやらないといけないことは

aa !~ /^abc/

の形をmacth?メソッドを使って書き直さなければならない

puts aa.match?(/^[^abc]/)

こういう風に書いてみた

$ ruby practice.rb

false

false

うまくいったっぽい

 

続いて

aa = "abc3333"
bb = "333abc33333"
cc = "annnbnnncnn"
dd = "vbckkkk"

puts aa !~ /^abc/
puts aa.match?(/^[^abc]/)
puts bb !~ /^abc/
puts bb.match?(/^[^abc]/)
puts cc !~ /^abc/
puts cc.match?(/^[^abc]/)
puts dd !~ /^abc/
puts dd.match?(/^[^abc]/)

こんだけ試してみた

$ ruby practice.rb

false

false

true

true

true

false

true

true

 

あれ!?

ccだけ違う結果になった

どうやら

puts cc !~ /^abc/

の書き方はaが最初にあってbcがあれば通るようだ

puts cc.match?(/^[^abc]/)

こっちの方が良いコードっぽい