Pertanyaan yang diberi tag «regular-expression»

Ekspresi reguler (sering disingkat "regex") adalah ekspresi yang ditulis dalam bahasa deklaratif yang digunakan untuk mencocokkan pola dalam string.

3
Apa perbedaan antara atom '\ zs' dan '\ @ <=' di Vim regex?
Inilah yang saya dapatkan dari dokumentasi: \zs"memulai bagian yang disorot" setelah mencocokkan regex sebelumnya, dan \@&lt;="memulai bagian yang disorot" setelah mencocokkan atom sebelumnya . Tapi saya tidak benar-benar memahami seluk-beluk ini, jadi adakah yang bisa menjelaskan bagaimana perbedaannya sedikit lebih dalam? Inilah yang membuat saya penasaran: apakah saya lari /\_s\zsnnoremap …

1
Sortir berdasarkan kata yang dipisahkan koma
Perintah normal: sort dapat menyortir baris berdasarkan kolom atau kolom virtual ( \%catau \%v), dapatkah kolom logis level lebih tinggi digunakan sebagai kunci penyortiran? Menggunakan ekspresi reguler terlihat sedikit rumit untuk skenario ini (kolomnya ada di sekitar akhir baris?) Dan terlihat mirip dengan apa yang dilakukan utilitas sortir ( sork …

6
Hapus n baris lewati 1 baris skrip
Saya ingin membuat skrip Vim dasar yang hanya menghapus n baris, melompati 1 baris dan mengulangi hingga akhir dokumen. Saya tidak peduli dengan pertandingan tertentu, saya hanya ingin menghapus garis. Sebagai contoh; Jadi saya ingin mengulangi perintah 3ddjuntuk seluruh dokumen. Text I want to keep. Text I want to delete. …


3
Alternatif untuk menghindari tebasan dalam pencarian dan ganti untuk string panjang
Apakah ada alternatif dalam pencarian vim dan ganti untuk string, daripada harus melarikan diri setiap karakter khusus dalam string. Misalnya, jika saya ingin mencocokkan string berikut dan ganti dengan sesuatu [ERROR] Login unsucessful Maka harus saya lakukan :%s/\[ERROR\]\ Login\ unsucessful/something/g Dan itu menjadi jauh lebih jelek dan menyakitkan untuk string …



2
Penggantian ekspresi reguler kasus campuran, dalam Vim
Saya sering mengalami situasi di mana saya memiliki file dengan banyak kasus campuran. Sebagai contoh, CamelCase and camelCase Saya mencari pengganti ekspresi reguler Vim untuk diproduksi, AnotherCase and anotherCase Saat ini saya melakukan ini dalam dua langkah setelah memilih garis secara visual, :s/CamelCase/AnotherCase/g :s/camelCase/anotherCase/g Apakah ini mungkin dalam satu langkah …

5
Bagaimana cara mengganti konten antara dua pola dari file?
Saya memiliki format file berikut: &lt;common&gt; fitnes=0 genetic=1 method=0 &lt;/common&gt; &lt;inputs&gt; foo=bar bar=foo &lt;/inputs&gt; &lt;limits&gt; balance=200.00 &lt;/limits&gt; dan saya ingin menghapus semua yang ada di antara &lt;inputs&gt;dan &lt;/inputs&gt;(tidak termasuk pola itu sendiri) dan menggantinya dengan konten dari file lain (misalnya foo.txt). Dengan kata lain baris dengan foo=bardan bar=fooakan diganti dengan …


1
Regex yang lebih suka pertandingan yang lebih pendek dalam suatu pertandingan? (Ini lebih terlibat daripada tidak serakah)
Saya mencoba membuat skrip untuk melakukan pencarian fuzzy di dalam buffer. Gagasan utamanya adalah mengambil beberapa input, dan menyisipkan di .\{-}antara setiap pasangan karakter, misalnya foomenjadi f.\{-}o.\{-}o. Ini bekerja cukup baik, tetapi muncul dengan banyak pertandingan yang tidak ideal. Saya pikir pencarian fuzzy harus menghasilkan kecocokan terpendek terlebih dahulu. Perhatikan …

1
Penggunaan operator = ~
Saya sedikit bingung dengan operator perbandingan regex VimScript. Jika saya melihat melalui :h =~?pemahaman saya adalah yang =~dapat digunakan untuk melakukan pertandingan regex (dengan ?membuatnya case-sensitive). Tetapi kode ini mencetak "tidak": let s:myVar = "S123" if s:myVar =~? "^S\d+" echo "yes" else echo "no" endif Apakah saya salah menggunakan =~operator?


2
Grup pencocokan bersarang di regex
Saya memiliki usecase umum ketika saya mengubah beberapa ekspresi python dengan cara berikut: value 1 value 2 value 3 ke ['value 1', 'value 2', 'value 3'] Cara termudah mungkin dengan menggunakan pemetaan, tetapi saya ingin menggunakan substitusi untuk tugas ini. Sejauh ini saya mendapat: s/\(.*\n\)\+/[&amp;]/g Yang mengakibatkan [value 1 value …

2
Bagaimana saya bisa membuat vim berhenti memecah kata-kata saya menjadi potongan-potongan?
Pengguna bahasa Inggris mungkin tidak memiliki masalah ini, tetapi vim cukup bodoh dalam hal ekspresi reguler. Dalam kasus saya sebagian besar huruf dalam alfabet Turki di luar alfabet EN tampaknya tidak memenuhi syarat sebagai karakter kata. Diberikan dokumen yang mengandung kata Turki: gerçekleşiyor Ekspresi pencarian /ger\wek ... tidak akan cocok …
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.