Поиск и замена с помощью компонентов RegEx в редакторе Atom

130

Я хочу найти и заменить это

`https://example.com/`{.uri}

в

[https://example.com/](https://example.com/)

С vimя сделал бы s/(HTTP. *) , {.uri}/[\1](\1)/gНо это не работает с atom.io. Как я могу это решить?

wintermeyer
источник
3
Я тоже мог бы использовать vim. Хотелось бы узнать, как решить данную проблему с atom.
Wintermeyer

Ответы:

215

Если вы нажмете Cmd-F и откроете панель поиска, с правой стороны появится кнопка «. *». Щелкните его, и теперь это режим регулярного выражения.

я нахожу

(http.*)\{\.uri\}

и заменить на

[$1]($1)
speedogoo
источник
4
s/(http.*){.uri}/[\1](\1)/gне работает atomс активированным RegEx. Возможно, это ошибка или другой синтаксис RegEx. Это было причиной моего вопроса.
Wintermeyer
19
Я нахожу «(http. *) \ {\. Uri \}» и заменяю на «[$ 1] ($ 1)». Оно работает. Это регулярное выражение в стиле Perl, которое я считаю стандартом.
speedogoo
1
@speedogoo Вы должны представить это как правильный ответ.
метод
3
Есть идеи, как мне оценить захваченную группу, чтобы что-то сделать с ней перед заменой? Например, если $1захватывается группа номеров - 123, замените ее, добавив к ней 1, что-то вроде eval($1+1)..?
SexyBeast
6
Хорошо, я просто забыл использовать круглые скобки в регулярном выражении. Просто проигнорируйте то, что я сказал.
Antoine
19

Juste для обновления @ ответ speedogoo в считывателей в будущем, если вы не можете найти режим регулярных выражений в окне поиска, это выглядит следующим образом :

введите описание изображения здесь

Вы также можете открыть его с помощью сочетания клавиш Ctrl+ Alt+ / (по умолчанию) .


Обратите внимание, что даже ^и $ уже поддерживаются функцией поиска и замены Atom.

Mistalis
источник
1
Вы говорите, что Group Replace не работает с Atom, что делает принятый ответ неверным (и портит мне день с Atom)?
Дэн Розенстарк
3
Я полагаю, он имел в виду, что привязки начала ^и конца строки $не поддерживаются. Поддерживается замена группы.
SadullahCeran
3
Работает в последних версиях, связанный вопрос с github закрыт.
Фрэнк Ли