У меня проблема с одним из моих регулярных выражений проверки при использовании нестандартного символа utf-8. Итак, я провёл несколько экспериментов и выяснил, что регулярное выражение ruby ведет себя по-разному, когда оно используется в среде rails или в обычном рубине.
Я публикую здесь свой эксперимент с китайской строкой.
In ruby "pure":
string = "運動會"
puts string[/\A[\w]*\z/]
=> match "運動會" - ok
] В рельсах:
# coding: utf-8
task :test => :environment do
string = "運動會"
puts string[/\A[\w]*\z/]
end
$ rake test
=> nothing - not ok
Если я опущу # coding: utf-8
, он поставляется с недопустимым многобайтовым символом (US-ASCII)
. В любом случае, даже с этим он не совпадает.
Конечно, я проверил все (ruby_version, кодировка файлов скриптов в utf-8 ..)
Я использую:
Итак, я пришел к выводу, что rails изменяют поведение регулярного выражения, и я не нашел способа заставить его вести себя как в обычном ruby.