Suchen und Ersetzen durch RegEx-Komponenten im Atom-Editor

129

Ich möchte dies suchen und ersetzen

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

zu

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

Mit vimwürde ich ein s/(http. *) {.uri}/[\1](\1)/gMachen, aber das funktioniert nicht mit atom.io. Wie kann ich das lösen?

wintermeyer
quelle
3
Ich könnte auch gebrauchen vim. Ich würde gerne wissen, wie man das gegebene Problem mit löst atom.
Wintermeyer

Antworten:

214

Wenn Sie Cmd-F verwenden und den Suchbereich öffnen, befindet sich auf der rechten Seite eine Schaltfläche ". *". Klicken Sie darauf und jetzt ist es Regex-Modus.

ich finde

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

und ersetzen zu

[$1]($1)
Speedogoo
quelle
4
s/(http.*){.uri}/[\1](\1)/gfunktioniert nicht atommit aktiviertem RegEx. Vielleicht ist es ein Fehler oder eine andere RegEx-Syntax. Das war der Grund meiner Frage.
Wintermeyer
19
Ich finde "(http. *) \ {\. Uri \}" und ersetze durch "[$ 1] ($ 1)". Es klappt. Dies ist der Regex im Perl-Stil, von dem ich glaube, dass er der Standard ist.
Speedogoo
1
@speedogoo Sie sollten dies als die richtige Antwort einreichen.
Methode
3
Irgendeine Idee, wie ich die erfasste Gruppe auswerten kann, um einige Dinge daran zu tun, bevor ich sie ersetze? Wenn zum Beispiel $1eine Zahlengruppe - 123 erfasst wird, ersetzen Sie sie, indem Sie 1 hinzufügen, so etwas wie eval($1+1)..?
SexyBeast
6
Ok, ich habe nur vergessen, Klammern in der Regex zu verwenden. Ignoriere einfach, was ich gesagt habe.
Antoine
19

Juste aktualisiert die Antwort von @ speedogoo für zukünftige Leser. Wenn Sie den Regex-Modus in der Suchansicht nicht finden, sieht er folgendermaßen aus:

Geben Sie hier die Bildbeschreibung ein

Sie können es auch mit der Verknüpfung Ctrl+ Alt+ / (Standard) öffnen .


Beachten Sie, dass sogar ^und $ bereits von Atoms Suchen und Ersetzen unterstützt werden.

Mistalis
quelle
1
Wollen Sie damit sagen, dass Group Replace nicht mit Atom funktioniert, wodurch die akzeptierte Antwort falsch wird (und mein Tag mit Atom ruiniert wird)?
Dan Rosenstark
3
Ich glaube, er meinte, dass Anker für Linienanfang ^und Linienende $nicht unterstützt werden. Das Ersetzen von Gruppen wird unterstützt.
SadullahCeran
3
Es funktioniert in neueren Versionen, das verknüpfte Github-Problem wurde geschlossen.
Frank Lee