Sederhananya begini adalah sebuah kalimat seperti berikut
class="kolom satu"
class="kolom dua"
class="kolom tiga"
class="baris satu"
class="baris dua"
class="baris tiga"
class="baris satu"
class="baris dua"
class="baris tiga"
Kemudian kita ingin mengganti semua kata setelah kolom dengan kosong, tapi hanya apabila kata setelah kolom tersebut adalah kata satu.
Secara manual bisa dengan mengganti satu persatu, tapi bagaimana kalo ada 10 atau 1000 kalimat yang mirip kalimat diatas, tentu cara ini akan sangat membosankan dan tidak efektif.
Dengan Regexp hal ini bisa dilakukan hanya dengan sekali jalan. Kali ini saya ingin menggunakan Emacs Regexps untuk melakukan hal tersebut (because i use Emacs), tekan kombinasi Ctrl+Alt+Shift+% pada keyboard, setelah itu minibuffer akan aktif ketikkan kata berikut
\(class="kolom\) satu
kemudian tekan Enter dan ketik kata penggantinya (dalam hal ini kosong) kemudian tekan Enter lagi.
Secara otomatis warna teks yang sesuai dengan karakter Regexp yang kita masukkan akan berbeda dengan yang lainnya, untuk melanjutkan penggantian tekan tombol y, atau !(tanda seru) untuk mengganti semua karakter tanpa konfirmasi.
Regexp dengan Emacs |
Ternyata ketika saya coba editor Vim, ternyata regexp yang digunakan tidak berbeda, hanya berbeda untuk pemanggilan dan penanganan ketika karaker ditemukan ada, jika pada Emacs otomatis akan ada konfirmasi untuk mengganti teks tersebut atau tidak sedangkan Vim secara default mengganti semua teks, kecuali ditambahkan modifier c setelah Regexp nya.
Vim regexp tanpa konfirmasi
:%s/\(class="kolom\) satu/kosong/g
Vim regexp dengan konfirmasi
:%s/\(class="kolom\) satu/kosong/gc
Format Regexp Vim sendiri sesuai dengan kebanyakan Regexp dalam pemrograman umumnya yaitu diawali dengan sebuah pembatas (biasanya dengan slash(/)) kemudian karakter regexp nya tambah dengan pembatas lagi (harus sama dengan pembatas yang digunakan diawal), kemudian kata penggantinya, sebuah pembatas lagi sebagai penutup baru kemudian modifier
Format Regexp :
/Regexp/pengganti/modifier
Pada contoh dengan Vim diatas karakter pertama adalah standar dari Vim
- :
untuk mengaktifkan command mode ( minibuffer kalo di Emacs) - %
artinya buffer(file) yang sedang aktif - s
pencarian dan penggantian teks
Sedangkan modifier g dan c diatas berarti global dan confirmation
Regexp dengan Vim |
Reference
http://en.wikipedia.org/wiki/Regexhttp://www.regular-expressions.info/modifiers.html
0 comments:
Post a Comment