Регулярное выражение для замены "{" на "(новая строка) {" в xcode - PullRequest
33 голосов
/ 22 февраля 2011

Мне нужно изменить свой стиль кодирования, поместив открывающие скобки в той же строке в новую строку. Мне нужно найти и заменить (пробел) {на (перевод строки) {. Я слышал, используя регулярные выражения найти и заменить, это довольно просто.

Может ли кто-нибудь помочь мне в этом?

Ответы [ 5 ]

52 голосов
/ 22 февраля 2011

Вы можете попробовать следующее:

  • В поле Найти введите пробел \ { $
  • В поле Заменить введите control + q return {

control + q требуется для цитирования ключа возврата. Нет визуальной обратной связи для ввода control + q return , поэтому единственным видимым символом в поле замены является открывающаяся фигурная скобка:

Screenshot Find & Replace

Несмотря на то, что это отвечает на ваш вопрос, есть (по крайней мере!) Одна проблема: она не отступает от открывающей фигурной скобки, поэтому что-то вроде

- (void)method {
    for (obj in collection) {
        NSLog(@"%@", obj);
    }
}

конвертируется в

- (void)method
{
    for (obj in collection)
{
        NSLog(@"%@", obj);
    }
}

Пункт меню Edit> Format> Re-Indent поместит открывающие фигурные скобки в правильную вкладку отступа, но могут быть нежелательные побочные эффекты для вашего стиля кода.


Редактировать: , как прокомментировано в другом ответе, вам может потребоваться регулярное выражение, которое соответствует произвольному количеству пробелов, окружающих фигурную скобку, например, \ S * {\ с * $

2 голосов
/ 22 февраля 2011

найдите это \s\{ и замените на \n\{

Ваш редактор должен поддерживать регулярные выражения в полях поиска и замены. Если вы не можете использовать \ n в диалоговом окне замены, потому что строка воспринимается буквально, попробуйте команду option-enter с последующим {, которая работает в большинстве редакторов, которые я пробовал.

  • \s - это пробел (если есть может быть больше пробелов, которые вы можете использовать \s+)

обратите внимание, что это должно быть \s+ вместо \s*, как кто-то исправил, потому что действительно \s* также совпадает, если нет места.

  • \{ требуется обратная косая черта, потому что {
    нужно убежать, так как у него есть другой значение в регулярном выражении
  • \n для новой строки

Однако наилучшим способом будет переформатировать код там, где вы решите разместить { на новой строке. Большинство редакторов позволяют вам устанавливать эти параметры.

Другой способ - использовать кодовое украшение, вы можете просмотреть их в Интернете, а некоторые позволяют изменять такие настройки.

1 голос
/ 02 августа 2016

Вы можете использовать [\n\r] для описания newline Обидно, я столкнулся с этим, когда нажимаю на значок лупы рядом с панелью поиска, когда нахожу что-то в одном файле.

Чтобы увидеть несколькодругие выражения:

  1. перейдите к файлу
  2. do cmd + f и откройте поиск
  3. нажмите на значок лупы с левой стороныполя поиска вверху
  4. Вы можете увидеть другие выражения в выпадающем меню
1 голос
/ 25 февраля 2014

Просто скопируйте пример необходимой строки замены (новая строка или другое) из кода в окно замены.

0 голосов
/ 10 мая 2012

Я некоторое время искал, чтобы выяснить, нужно ли вам сначала включить опции поиска для регулярных выражений на маленьком увеличительном стекле в левой части поля поиска-ввода;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...