Unicode может иметь 50 пробелов
\ U0009 \ u000A- \ u000d \ u0020 \ u0085 \ u00A0 \ u1680 \ u180E \ u2000- \ u200A \ u2028 \ u2029 \ u202F \ u205F \ u3000] [\ u0009 \ u000A- \ u000d \ u0020 \ u0085 \ u00A0 \ u1680 \ u180E \ u2000- \ u200A \ u2028 \ u2029 \ u202F \ u205F \ u3000
и 6 разрывов строки
не только CRLF, LF, CR, но также NEL (U + 0085), PS (U + 2029) и LS (U + 2028).
Может быть, я мог бы понять большинство пробелов и PS («Разделитель абзацев»), но для чего хороши «Следующая строка» и «Разделитель строк»?
Все это похоже на то, что изобрел очень большой комитет, где каждый хотел иметь свое место, а лидерам был предоставлен один разрыв строки. А если серьезно, как вы справляетесь с этим, когда ваш язык программирования не поддерживает его (или делает это неправильно, как, например, Java)?
Pattern.compile2010
метод, возвращающий регулярные выражения, работающие в соответствии с определением прошлых лет. Они также могут свободно создавать метод,Pattern.compileLatestUTS
который бы явно указывал, что значение будет меняться в соответствии с новой спецификацией.Ответы:
Следующая строка (U + 0085) часто используется как символ новой строки в системах EBCDIC (как 0x15). Это как CR + LF, но как один символ.
LINE SEPARATOR (U + 2028) и PARAGRAPH SEPARATOR (U + 2029) объясняются в разделе 5.8 стандарта Unicode , который описывает их как текстовую версию HTML
<br>
и<p>
для устранения неоднозначности этих функций «новой строки». Но на практике эти персонажи мало привыкли.источник