16

この正規表現では:

regex1 = /\z/

次の文字列が一致します。

"hello" =~ regex1 # => 5
"こんにちは" =~ regex1 # => 5

しかし、これらの正規表現では:

regex2 = /#$/?\z/
regex3 = /\n?\z/

彼らは違いを示しています:

"hello" =~ regex2 # => 5
"hello" =~ regex3 # => 5
"こんにちは" =~ regex2 # => nil
"こんにちは" =~ regex3 # => nil

何が干渉していますか?文字列エンコーディングは UTF-8 で、OS は Linux (つまり、$/です"\n") です。マルチバイト文字が干渉してい$/ませんか? どのように?

4

2 に答える 2