¿El carácter multibyte interfiere con el carácter de la línea final dentro de una expresión regular?
Con esta expresión regular:
regex1 = /\z/
las siguientes cadenas coinciden:
"hello" =~ regex1 # => 5
"こんにちは" =~ regex1 # => 5
Pero con estas expresiones regulares:
regex2 = /#$/?\z/
regex3 = /\n?\z/
muestran diferencia
"hello" =~ regex2 # => 5
"hello" =~ regex3 # => 5
"こんにちは" =~ regex2 # => nil
"こんにちは" =~ regex3 # => nil
¿Qué está interfiriendo? La codificación de cadena es UTF-8, y el sistema operativo es Linux (es decir,$/
es"\n"
). Son los caracteres multibyte que interfieren con$/
? ¿Cómo?