Menggunakan RegEX Untuk Mengawali Dan Menambahkan Di Notepad ++


88

Saya memiliki daftar kata yang cukup banyak dalam file txt dan saya mencoba melakukan pencarian dan penggantian regex di Notepad ++. Saya perlu menambahkan string sebelum setiap baris dan setelah setiap baris .. Sehingga:

wordone
wordtwo
wordthree

menjadi

mampu: "wordone"
mampu: "wordtwo"
mampu: "wordthree"

Bagaimana saya bisa melakukan ini?


Maaf, string kata itu seharusnya berada di baris terpisah! Saya yakin itu membingungkan sekarang ...
zuk1

manis menyelamatkan saya banyak googling :)
melaos

Jawaban:


174

Dengan asumsi kata alfanumerik, Anda dapat menggunakan:

Search  = ^([A-Za-z0-9]+)$
Replace = able:"\1"

Atau, jika Anda hanya ingin menyorot garis dan menggunakan "Replace All" & "In Selection" (dengan ganti yang sama):

Search = ^(.+)$

^menunjuk ke awal baris.
$menunjuk ke akhir baris.

\1 akan menjadi kecocokan sumber dalam tanda kurung.


terima kasih, setelah sekitar 30 menit pencarian saya sampai di sini untuk sukses :)
dhaval

Ekspresi Reg adalah penyelamat. Terima kasih untuk bantuannya.
Techgration

Kerja bagus +1 untuk menjelaskan
SSH

Woot! Inilah yang saya butuhkan.
Chuck Le Butt

1
Di N ++ terbaru, ^([A-Za-z0-9]+)$tidak ada hasil yang cocok, tetapi ^(.+)$berfungsi di setiap skenario. Terima kasih!
Laurie Stearn

29

Mengapa Anda tidak menggunakan kemampuan pengeditan multiline Notepad ++?

Tahan Alt sambil memilih teks (menggunakan pendekatan klik-dan-seret yang biasa Anda lakukan) untuk memilih teks di beberapa baris. Ini terkadang juga disebut sebagai pengeditan kolom.

Anda dapat menempatkan kursor di awal file, Tekan (dan tahan) Alt, Shift dan kemudian terus menekan panah bawah atau PageDown untuk memilih baris yang ingin Anda tambahkan dengan teks :-) Mudah. Pengeditan multiline adalah fitur Notepad ++ yang sangat berguna. Ini juga dimungkinkan di Visual Studio, dengan cara yang sama, dan juga di Eclipse dengan beralih ke Block Selection Mode dengan menekan Alt + Shift + A dan kemudian menggunakan mouse untuk memilih teks melintasi baris.


1
+1 Ini sangat bagus, saya tidak tahu Anda bisa melakukan ini. Apakah mungkin untuk menambahkan sesuatu ke akhir setiap baris, ketika panjang setiap baris berbeda? Misalnya, ketika lebar 'kolom' bervariasi, akan lebih rapi jika Anda dapat menambahkan teks ke setiap baris. Saya memiliki daftar fungsi dan saya perlu menambahkan "();" untuk setiap baris tetapi setiap nama fungsi memiliki lebar yang berbeda. Saat ini saya menggunakan Makro untuk melakukan ini, terima kasih!
SSH

5
untuk menambahkan mungkin yang terbaik adalah dengan menggunakan simple find / replace menggunakan mode pencarian "Extended". Anda dapat mencari akhiran baris, misalnya \r\ndan menggantinya dengan<whatever you want to append>\r\n
Peter Perháč

Ini sebenarnya adalah solusi yang sangat bagus, terutama dengan komentar LAMPIRAN di atas.
Chuck Le Butt

2
Ini berguna untuk prefixing, tapi tidak begitu berguna jika Anda ingin postfix garis panjang campuran (tambahkan di akhir). Saya berharap Notepad ++ memiliki built-in "Modify Lines" perintah seperti di Notepad2, yang memungkinkan Anda untuk memilih baris, tekan Alt + M, dan menambahkan teks sebelum dan / atau setelah setiap baris.
thdoan

23

Ekspresi Reguler yang dapat digunakan:

Find: \w.+
Replace: able:"$&"

As, $&akan memberi Anda string yang Anda cari.

Lihat: regexr


6
Sebutan bagus tentang $&! Tidak \1bekerja di semua lingkungan.
pfabri

Jawaban bagus tentang $&. Ia bekerja di SublimeText juga.
WesternGun

Jawaban bagus tentang $&. Ia bekerja dalam kode VS juga.
P. Frank

5

Gunakan Makro.

Makro> Mulai Merekam

Gunakan keyboard untuk membuat perubahan Anda dengan cara yang berulang, mis

beranda> ketik "dapat"> akhir> panah bawah> beranda

Kemudian kembali ke menu dan klik stop recording lalu jalankan makro beberapa kali.

Itu harus melakukannya dan tidak ada komplikasi berbasis regex!


4
Apa yang dimaksud dengan "komplikasi"? :-)
Tomalak

1 untuk kemudahan penggunaan! Saya perlu menambahkan 'tab' ke akhir setiap baris dalam file dan tip ini berhasil.
NateJ
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.