Rubyでは、いくつかの演算子を読みましたが、=~
が見つかりませんでした。 =~
とは何ですか、それはどういう意味ですか?私が見たプログラムは
regexs = (/\d+/)
a = somestring
if a =~ regexs
somestring
が数字と等しいかどうかを比較していたと思いますが、他の使用法はありますか?=~
演算子の適切な定義は何ですか?
=~
演算子は、正規表現と文字列を照合し、見つかった場合は文字列からの一致のオフセットを返し、それ以外の場合はnilを返します。
/mi/ =~ "hi mike" # => 3
"hi mike" =~ /mi/ # => 3
"mike" =~ /Ruby/ # => nil
上記のように、演算子の両側に文字列/正規表現を配置できます。
この演算子は、文字列を正規表現と照合します。
s = 'how now brown cow'
s =~ /cow/ # => 14
s =~ /now/ # => 4
s =~ /cat/ # => nil
文字列が式と一致する場合、演算子はオフセットを返し、一致しない場合はnilを返します。それよりもやや複雑です: こちらのドキュメントをご覧ください。Stringクラスのメソッドです
=〜は正規表現に一致するための演算子で、一致の開始のインデックスを返します(一致しない場合はnil)。
ドキュメントについては here を参照してください。