удалить все новые строки, не работающие Java (как показано в Emacs) - PullRequest
0 голосов
/ 26 февраля 2019

У меня есть файл, который я загружаю в emacs в фундаментальном режиме.(Надежным суффиксом является qqqrrrzzz, поэтому Emacs не устанавливает его в текстовый режим и не добавляет линейные переносы.) Я включаю пробельный режим, и там много $, показывая новые строки.

Затем я запускаю этот код Java:

    out = out.replaceAll("(m?:\\R)", " ");

    out = out.replace(System.getProperty("line.separator"), " ");

    out = out.replace("\u0085", " ");
    out = out.replace("\u0085", " ");
    out = out.replace("\u2029", " ");

    out = out.replaceAll("\\u0085", " ");
    out = out.replaceAll("\\u2028", " ");
    out = out.replaceAll("\\u2029", " ");

    out = out.replaceAll("\\R", " ");
    out = out.replaceAll("(\\r\\n|\\r|\\n)", " ");
    out = out.replace("\r\n", " ");
    out = out.replace("\r", " ");
    out = out.replace("\n", " ");
    out = out.replaceAll("\\r\\n", " ");
    out = out.replaceAll("\\r", " ");
    out = out.replaceAll("\\n", " ");

    out = out.replace("a", "b")

(последний бит - просто убедиться, что я касаюсь файла.)

И все же $ в конце множества строкв файле emacs сохраняются - файл не стал одной большой длинной строкой, как и должно быть.

Обратите внимание, что я CAN делаю в emacs "Mx query-replace-regex Cq CjRET SPACE RET! "и вуаля в файле все одна длинная строка.И все же ничто в Java, кажется, не работает.: (

Кстати, я включаю режим автоматического возврата, или вручную перезагружаю файл в emacs и т. Д., И я уверен, что он корректируется, потому что другие настройки выполняются с помощью replaceAll. Нобез длинных строк.

Озадаченный в Панксатони,

Фил

(все вышеперечисленные java-строки немного напоминают мне все AT-AT, стреляющие в Люка вконец последнего джедая ...)

1 Ответ

0 голосов
/ 26 февраля 2019

Я предлагаю заменить все неожиданные символы новой строки, так как есть много типов новой строки:

out = out.replaceAll("[\\v&&[^\\n\\r]]", "");

Это заменяет все \ v (вертикальные пробелы) минус ожидаемые.

Возможно, вы также захотите взглянуть на следующий класс, который является основополагающим для всех операций на основе регулярных выражений в стандартном Java.https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html

В документе прямо указано, что \ v не поддерживается, но я использовал это, и это так.:)

...