С помощью этого регулярного выражения:
regex1 = /\z/
соответствуют следующие строки:
"hello" =~ regex1 # => 5
"こんにちは" =~ regex1 # => 5
но с этими регулярными выражениями:
regex2 = /#$/?\z/
regex3 = /\n?\z/
они показывают разницу:
"hello" =~ regex2 # => 5
"hello" =~ regex3 # => 5
"こんにちは" =~ regex2 # => nil
"こんにちは" =~ regex3 # => nil
Что мешает? Строковая кодировка - UTF-8, а ОС - Linux (т.е. $/
- "\n"
). Являются ли мультибайтные символы мешающими $/
? Как?