Подтвердить что ты не робот

Как искать возврат каретки в eclipse

Если у меня есть следующий текст в моем редакторе Eclipse:

Text Line 1
Text Line 2

Я хотел бы объединить текст в:

Text Line 1Text Line 2

Моя первая идея состояла в том, чтобы найти символ возврата каретки '\n' и заменить его на '', чтобы объединить его.

Я попытался использовать функцию поиска Eclipse, но она не распознает символ возврата каретки.

Есть ли другой редактор, который может сделать это?

4b9b3361

Ответ 1

Eclipse делает это, если вы:

  • включить режим регулярного выражения в поиске/замене
  • введите \R для новой строки

Ответ 2

Просто используйте Edit -> Find/Replace, установите флажок Regular Expressions, найдите \n и замените его пробелом.

Я попробовал его в Eclipse 3.4, и он работал хорошо.

Ответ 3

Большинство задач поиска и замены в редакторах (по крайней мере, TextPad) могут быть заменены с помощью регулярного выражения. Если вы можете найти эту опцию в eclipse, просто используйте это.

Ответ 4

\ r - правильное регулярное выражение для возврата каретки. Но стандартный редактор Eclipse не находит его. Поэтому используйте внешний редактор, например блокнот ++

Ответ 5

Короткий ответ:

Я решил использовать \s++ как разделитель в многострочных поисковых выражениях (с включенными регулярными выражениями) и \Qfoo\E для вызова специальных символов, если это необходимо.

Длинный ответ:

Как уже ответил soru, для любой "последовательности Unicode linebreak" можно использовать поиск регулярных выражений с помощью \R.

Чистый возврат каретки представлен \R. Верхний и нижний регистр имеют значение.

Я нашел этот вопрос SO, потому что я хотел найти многострочное выражение в Eclipse, включая разрывы строк и вкладки:

    @Override
    @Transient

Чтобы включить пробелы в мое регулярное выражение поиска, которое я использовал (на платформе Windows)

@Override\r\n\t*@Transient

Следующие выражения также работают:

Обратите внимание на, что второе выражение также соответствует @Override @Transient без разрыва строки, что подходит для меня.

Следующие выражения не сделали! работайте для меня:

  • @Override\R\t*@Transient
  • @Override\n\t*@Transient

Объяснение некоторых регулярных выражений:

  • \R представляет любую последовательность очередей Unicode (например, \r\n)
  • \s представляет любое пустое пространство
  • \t представляет вкладку
  • * соответствует нулю или больше вхождений
  • ++ соответствует одному или нескольким вхождениям
  • \Q и \E удалить завернутый контент. Используйте их, если ваше оригинальное многострочное выражение содержит специальные символы регулярного выражения, например

\Q/**\E\s++\Q*\E

соответствует

    /**
     *

Также смотрите:

Разница между \n и\r?

https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html