Wyszukaj i zamień na komponenty RegEx w edytorze Atom

130

Chcę to wyszukać i zamienić

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

do

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

Z vimzrobiłbym s/(http. *), {.uri}/[\1](\1)/gAle to nie działa z atom.io. Jak mogę to rozwiązać?

Wintermeyer
źródło
3
Mógłbym też użyć vim. Chciałbym wiedzieć, jak rozwiązać dany problem atom.
Wintermeyer

Odpowiedzi:

215

Jeśli naciśniesz Cmd-F i otworzysz okienko wyszukiwania, po prawej stronie znajduje się przycisk „. *”. Kliknij go, a teraz jest tryb regex.

znajduję

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

i zamień na

[$1]($1)
speedogoo
źródło
4
s/(http.*){.uri}/[\1](\1)/gnie działa atomz aktywowanym wyrażeniem RegEx. Może to błąd lub inna składnia RegEx. To był powód mojego pytania.
Wintermeyer
19
Znajduję „(http. *) \ {\. Uri \}” i zamieniam na „[$ 1] ($ 1)”. To działa. To jest wyrażenie regularne w stylu Perla, które moim zdaniem jest standardem.
speedogoo
1
@speedogoo Powinieneś przesłać to jako poprawną odpowiedź.
metoda
3
Masz jakiś pomysł, jak ocenić przechwyconą grupę, aby zrobić na niej coś przed zastąpieniem? Na przykład, jeśli $1przechwytuje grupę liczb - 123, zamień ją na dodanie 1, na przykład eval($1+1)…?
SexyBeast
6
Ok, po prostu zapomniałem użyć nawiasów w wyrażeniu regularnym. Po prostu zignoruj ​​to, co powiedziałem.
Antoine
19

Wystarczy zaktualizować odpowiedź @ speedogoo dla przyszłych czytelników, jeśli nie znajdziesz trybu wyrażenia regularnego w widoku wyszukiwania, wygląda to tak:

wprowadź opis obrazu tutaj

Możesz go również otworzyć za pomocą skrótu Ctrl+ Alt+ / (domyślnie) .


Zwróć uwagę, że nawet ^i $ są już obsługiwane przez funkcję Znajdź i zamień Atom.

Mistalis
źródło
1
Czy mówisz, że zastępowanie grupowe nie działa z Atomem, przez co zaakceptowana odpowiedź jest błędna (i psuje mój dzień z Atomem)?
Dan Rosenstark
3
Myślę, że miał na myśli, że kotwice początku ^i końca linii $nie są obsługiwane. Obsługiwane jest zastępowanie grup.
SadullahCeran,
3
Działa w najnowszych wersjach, problem z połączonym githubem został zamknięty.
Frank Lee,