Cari dan Ganti dengan komponen RegEx di Editor Atom

130

Saya ingin mencari dan mengganti ini

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

untuk

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

Dengan vimsaya akan melakukan s/(http. *) {.uri}/[\1](\1)/gTapi itu tidak berhasil atom.io. Bagaimana saya bisa memecahkan masalah ini?

musim dingin
sumber
3
Saya juga bisa menggunakan vim. Saya ingin tahu bagaimana menyelesaikan masalah yang diberikan atom.
wintermeyer

Jawaban:

215

Jika Anda Cmd-F dan membuka panel pencarian, ada tombol ". *" Di sisi kanan. Klik dan sekarang sudah mode regex.

saya menemukan

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

dan ganti ke

[$1]($1)
speedogoo
sumber
4
s/(http.*){.uri}/[\1](\1)/gtidak bekerja atomdengan RegEx diaktifkan. Mungkin itu adalah bug atau sintaks RegEx yang berbeda. Itulah alasan pertanyaan saya.
wintermeyer
19
Saya menemukan "(http. *) \ {\. Uri \}" dan ganti menjadi "[$ 1] ($ 1)". Berhasil. Ini adalah reg-style perl, yang saya yakini standar.
speedogoo
1
@speedogoo Anda harus mengirimkan ini sebagai jawaban yang benar.
metode
3
Adakah ide bagaimana cara saya mengevaluasi kelompok yang ditangkap untuk melakukan beberapa hal sebelum mengganti? Misalnya, jika $1menangkap grup nomor - 123, ganti dengan menambahkan 1 ke dalamnya, kira-kira seperti eval($1+1)..?
SexyBeast
6
Ok saya hanya lupa menggunakan tanda kurung di regex. Abaikan saja apa yang saya katakan.
Antoine
19

Juste untuk memperbarui jawaban @ speedogoo untuk pembaca di masa mendatang, jika Anda tidak menemukan mode regex di tampilan pencarian, sepertinya ini:

masukkan deskripsi gambar di sini

Anda juga dapat membukanya dengan cara pintas Ctrl+ Alt+ / (default) .


Perhatikan bahwa even ^dan $ sudah didukung oleh Atom menemukan dan mengganti.

Mistalis
sumber
1
Apakah Anda mengatakan bahwa Group Replace tidak berfungsi dengan Atom, sehingga membuat jawaban yang diterima salah (dan merusak hari saya dengan Atom)?
Dan Rosenstark
3
Saya percaya maksudnya awal ^dan akhir $jangkar garis tidak didukung. Pengganti grup didukung.
SadullahCeran
3
Ini berfungsi dalam versi terbaru, masalah github tertaut telah ditutup.
Frank Lee