Rechercher et remplacer par des composants RegEx dans l'éditeur Atom

130

Je veux rechercher et remplacer ceci

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

à

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

Avec vimje ferais un s/(http. *) {.uri}/[\1](\1)/gMais cela ne fonctionne pas avec atom.io. Comment puis-je resoudre ceci?

Wintermeyer
la source
3
Je pourrais aussi utiliser vim. Je voudrais savoir comment résoudre le problème donné avec atom.
wintermeyer

Réponses:

215

Si vous Cmd-F et ouvrez le volet de recherche, il y a un bouton ". *" Sur le côté droit. Cliquez dessus et maintenant c'est le mode regex.

je trouve

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

et remplacer par

[$1]($1)
speedogoo
la source
4
s/(http.*){.uri}/[\1](\1)/gne fonctionne pas atomavec RegEx activé. C'est peut-être un bogue ou une syntaxe RegEx différente. C'était la raison de ma question.
wintermeyer
19
Je trouve "(http. *) \ {\. Uri \}" et je remplace par "[$ 1] ($ 1)". Ça marche. Il s'agit de l'expression rationnelle de style perl, que je crois être la norme.
speedogoo
1
@speedogoo Vous devez soumettre ceci comme la bonne réponse.
méthode du
3
Une idée comment évaluer le groupe capturé pour y faire des choses avant de le remplacer? Par exemple, si $1capture un groupe de nombres - 123, remplacez-le en y ajoutant 1, quelque chose comme eval($1+1)..?
SexyBeast
6
Ok, j'ai juste oublié d'utiliser des parenthèses dans l'expression régulière. Ignorez simplement ce que j'ai dit.
Antoine le
19

Juste pour mettre à jour la réponse de @ speedogoo pour les futurs lecteurs, si vous ne trouvez pas le mode regex dans la vue de recherche, cela ressemble à ceci:

entrez la description de l'image ici

Vous pouvez également l'ouvrir avec le raccourci Ctrl+ Alt+ / (par défaut) .


Notez que même ^et $ sont déjà pris en charge par la recherche et le remplacement d'Atom.

Mistalis
la source
1
Êtes-vous en train de dire que le remplacement de groupe ne fonctionne pas avec Atom, ce qui rend la réponse acceptée erronée (et ruine ma journée avec Atom)?
Dan Rosenstark
3
Je crois qu'il voulait dire que les ancres de début ^et de fin de ligne $ne sont pas prises en charge. Le remplacement de groupe est pris en charge.
SadullahCeran
3
Cela fonctionne dans les versions récentes, le problème lié à github a été résolu.
Frank Lee