whole文字列が(部分文字列ではなく)一致する場合にtrueを返すように、正規表現に対する文字列をどのようにすればよいですか?
例えば:
test( \ee\ , "street" ) #=> returns false
test( \ee\ , "ee" ) #=> returns true!
ありがとうございました。
文字列の先頭を\A
と、末尾を\Z
と一致させることができます。 In Ruby ^
および$
は、それぞれ行の先頭と末尾にも一致します。
>> "a\na" =~ /^a$/
=> 0
>> "a\na" =~ /\Aa\Z/
=> nil
>> "a\na" =~ /\Aa\na\Z/
=> 0
これは私にとってはうまくいくように見えますが、lookいように見えます(おそらくより魅力的な方法です):
!(string =~ /^ee$/).nil?
もちろん、上記の//内のすべてが、任意の正規表現になります。
例:
>> string = "street"
=> "street"
>> !(string =~ /^ee$/).nil?
=> false
>> string = "ee"
=> "ee"
>> !(string =~ /^ee$/).nil?
=> true
注:Rails console with Ruby(1.8.7)およびRails(3.1.1)でテスト済み
だから、あなたが求めているのは、2つの文字列が等しいかどうかをテストする方法ですよね?文字列の等価性を使用してください!これは、あなたとTomasの両方が引用したすべての例に合格します。
'ee' == 'street' # => false
'ee' == 'ee' # => true
"a\na" == 'a' # => false
"a\na" == "a\na" # => true