Unicode tiene quizás 50 espacios
\ u0009 \ u000A- \ u000D \ u0020 \ u0085 \ u00A0 \ u1680 \ u180E \ u2000- \ u200A \ u2028 \ u2029 \ u202F \ u205F \ u3000] [\ u0009 \ u000A- \ u000D \ u0020 \ u0085 \ u00A0 \ u16A u180E \ u2000- \ u200A \ u2028 \ u2029 \ u202F \ u205F \ u3000
y 6 saltos de línea
no solo CRLF, LF, CR, sino también NEL (U + 0085), PS (U + 2029) y LS (U + 2028).
Tal vez podría entender la mayoría de los espacios y PS ("separador de párrafos"), pero ¿para qué sirven "Next Line" y "Line separator"?
Todo parece inventado por un comité muy grande donde todos querían su propio espacio y a los líderes se les concedió un salto de línea cada uno. Pero en serio, ¿cómo lo manejas cuando tu lenguaje de programación no lo admite (o lo hace mal, como Java)?
Pattern.compile2010
método que devuelva expresiones regulares que funcionen según la definición de los últimos años. También son libres de crear un métodoPattern.compileLatestUTS
que establezca explícitamente que el significado cambiará de acuerdo con las nuevas especificaciones.Respuestas:
NEXT LINE (U + 0085) se usa a menudo como el carácter de nueva línea en los sistemas EBCDIC (como 0x15). Es como CR + LF, pero como un personaje.
SEPARADOR DE LÍNEA (U + 2028) y SEPARADOR DE PÁRRAFO (U + 2029) se explican en la sección 5.8 del estándar Unicode , que los describe como una versión de texto sin formato de HTML
<br>
y<p>
, para desambiguar estas funciones de "nueva línea". Pero en la práctica, estos personajes no se acostumbran mucho.fuente