Menggunakan pencarian wildcard / ganti di Notepad ++

17

Inilah masalah saya: Dalam file .txt, saya perlu mencari dan mengganti ribuan contoh sintaksis seperti ini:

(lihat (a053007djfgspwdf))

atau

(lihat (a053007djfgspwdf) dan (a54134xsedgeg))

atau

(lihat (a053007djfgspwdf), (a9554xsdfgsdfg) dan (a54134xsedgeg))

Ada banyak variasi di antara string teks awal (lihat ( dan berakhir )) . Bisakah ini diatur di Notepad ++ menggunakan regex? Jika demikian, bagaimana saya melakukannya? Terima kasih!

Michael Tuck
sumber

Jawaban:

17

Maaf teman, saya hanya menemukan jawaban lain yang rumit. (Tidak ada rasa tidak hormat terhadap poster asli.)

Karena ini selalu muncul sebagai hasil pencarian pertama, saya akan menambahkan ini di:

  1. Buka dialog cari / ganti ( CTRL+ Flalu tab ganti)
  2. Centang "Ekspresi Reguler" di bagian bawah
  3. Gunakan. * Sebagai wildcard

Misalnya, saya ingin menghapus semua instance abp = "1314", abp = "1313", abp = "1312" dll. (Pada dasarnya angkanya semua berbeda, itulah sebabnya Anda ingin wildcard untuk menyingkirkannya).

Dalam dialog ganti:

Temukan apa: abp=".*"
Ganti dengan:

(Anda mengganti apa pun di dalam tanda kutip dengan tidak ada yang bisa menghilangkannya)

Sumber: https://www.organicweb.com.au/17226/general-technology/notepad-wildcard/

SweetSuzie
sumber
15

Ya bisa! Notepad ++ memiliki mode pencarian RegEx yang dapat Anda pilih untuk semua kebutuhan penggantian RegEx Anda.

Contoh di bawah ini adalah pengganti dasar untuk apa pun di antaranya (see (a...))dengan pengecualian pemutusan baris. Anda mungkin perlu memodifikasi RegEx atau menulis sendiri sesuai dengan kebutuhan Anda. Inilah tempat yang bagus untuk membantu Anda dalam bereksperimen.

RegEx: \(see \(a.+\)\)

String yang cocok:

(see (a053007djfgspwdf))
(see (a053007djfgspwdf) and (a54134xsedgeg))
(see (a053007djfgspwdf), (a9554xsdfgsdfg) and (a54134xsedgeg))


Ganti (lihat (a ...)) dengan pengganti

satu kali
sumber
Terima kasih! Ia menemukan contoh dari contoh pertama (lihat (a053007djfgspwdf)) tetapi tidak yang lain. Tetap saja, awal yang bagus. Saya akan bermain dengannya untuk melihat apa lagi yang bisa saya lakukan. Jika Anda memiliki saran lebih lanjut, saya akan sangat menghargainya. Terima kasih lagi.
Michael Tuck
Apakah Anda mengklik Ganti Semua atau terus mengklik Ganti untuk menelusuri pertandingan yang serupa dengan menggunakan Temukan Berikutnya ? Apakah teks yang Anda cari hanya diawali dengan (see (adan diakhiri dengan ))? Jika Anda memiliki string yang diakhiri dengan tanda kurung tunggal, Anda dapat mengubah yang terakhir \)menjadi grup tangkap (\)|)untuk mencocokkan string yang diakhiri dengan ))"atau" ).
one.time
Mencoba beberapa pengganti, lalu Ganti Semua. Setelah itu, string pencarian tidak menemukan apa pun. Teks untuk semua adalah: (lihat teks yang bervariasi )) Tidak ada string dengan tanda kurung tunggal kecuali mungkin kesalahan ketik.
Michael Tuck
Saya memperbarui jawaban saya dengan RegEx alternatif (\(see \(a|\(a)([^\)]+)\)(\)|)yang akan cocok dengan string dalam pertanyaan Anda.
one.time
LOL Anda memperbarui jawaban Anda saat saya mengedit respons saya. Saya akan mencoba yang baru.
Michael Tuck
1

Coba pola ini: \(see \(a(.*)\)dan pastikan Anda telah ".cocokkan baris baru" tidak dicentang dan "dibungkus" dicentang.

ethmz
sumber
1

Karena beberapa di antaranya terlalu dalam untuk saya pahami, izinkan saya menunjukkan kepada Anda apa yang saya lakukan setelah membaca semua solusi ini dan lebih banyak lagi untuk akhirnya mendapatkan pemahaman yang lebih baik. (ini adalah pendekatan sederhana, mungkin bukan yang terbaik)

Saya ingin menghapus semua elemen gambar saya di seluruh halaman web. Gambar 2.1, Gambar 1.1, dll.

Dulu:

<p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar<br><b>Figure 2.1</b></p>

Saya ingin itu berakhir:

 <p class="td1-content b8"><span class="stepNumber">2.  </span>Select Memo from the toolbar</p>

Tapi masing-masing

memiliki nomor Gambar yang berbeda, jadi saya menggunakan ini dalam teks 2 yang agung.

  1. ctrl H
  2. klik simbol ". *" di kanan bawah teks Sublime 2, (regex)
  3. diketik <br><b>Figure.*</b>
  4. ganti dengan: -kosong kosong

Ini menggantikan semua instance saya dengan angka di dalamnya. perhatikan saya menggunakan. * di mana angkanya akan. Semoga ini membantu.

Jim Schwetz
sumber
0

Regex persis yang Anda butuhkan adalah:

\(see \(\w+\)((, \(\w+\))*( and \(\w+\)))?\)

Sebagai contoh:

masukkan deskripsi gambar di sini

Pada memilih Temukan Semua dalam Dokumen Saat Ini , hasilnya adalah:

masukkan deskripsi gambar di sini

Anda cukup menggunakan Ganti sesuai kebutuhan Anda sebagai gantinya.

Jika Anda ingin memasukkan ajuga dalam regex, Anda dapat menggunakan:

\(see \(a\w+\)((, \(a\w+\))*( and \(a\w+\)))?\)
Roney Michael
sumber