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
Temukan dan ganti menggunakan ekspresi reguler
Saya memiliki file dengan banyak pengguna default. Saya ingin mengubah beberapa teks, tapi saya kesulitan membuat korek api dan mengganti. Menggunakan contoh berikut: ############################################################################### # Trackpad, mouse, keyboard, Bluetooth accessories, and input # ############################################################################### # Trackpad: enable tap to click for this user and for the login screen defaults write …

2
Apakah lookaround mungkin dalam sistem regex vim?
Saya telah menemukan banyak situasi di vim di mana akan berguna untuk memiliki pernyataan lookaround. Saya telah mencoba menggunakan sintaks lookaround standar ( (?=), (?!)dll.) , Tetapi tampaknya vim tidak mendukung ini. Apakah vim memiliki sintaks yang setara untuk pernyataan seperti ini?

3
Bagaimana cara membuat pencocokan regex menjadi tidak serakah?
Saya mencoba menggunakan regex untuk mengganti teks dalam file (ganti url lengkap dengan hanya protokol / domain /): :%s/\(https\?:\/\/.*?\/\).*/\1/gc Sayangnya .*?tidak cocok dengan string, bahkan mencoba untuk melarikan diri dari ?penjumlahan? Bagaimana seharusnya quantifier yang tidak rakus diloloskan dalam vim?

1
Bisakah saya mencari karakter menggabungkan Unicode di Vim?
Saya memiliki file dengan karakter ã(huruf kecil + menggabungkan tilde). Encodingdan fileencodingkeduanya utf-8. gamenunjukkan <a> 97, hex 61, octal 141 <~> 771, Hex 0303, Octal 1403 (tetapi dengan tilde menggabungkan yang sebenarnya di <>) dan g8menunjukkan 61 + cc 83 Pencarian dengan /a\%u0303berfungsi dengan baik. Mencari hanya \%u0303memberi Pola E486 …


1
Mengapa Vim regex tidak mengizinkan lebih dari 9 grup tangkap?
Dari :h E65kita dapat melihat bahwa Vim tidak mengizinkan lebih dari 9 kelompok tangkapan dalam perintah substitusi. Sebagai contoh, perintah berikut akan berfungsi: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)/\9\8\7\6\5\4\3\2\1 Tetapi yang satu ini dengan satu lagi grup penangkap akan gagal: s/\v(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)/\10\9\8\7\6\5\4\3\2\1 Pertanyaan saya bukan tentang mengapa gagal (itu adalah batas keras Vim) tetapi tentang mengapa …

1
Apakah magics regex Vim kompatibel dengan kelas regex terkenal?
Sintaks ekspresi reguler Banyak alat Unix sering kali adalah Basic Regular Expressified dan Ekspresi POSIX (BRE dan ERE, masing-masing), dan, dalam beberapa implementasi modern, gaya-Perl (PCRE menjadi implementasi dari ini). Apakah ada korespondensi satu-ke-satu antara tingkat sihir Vim dan kelas yang didefinisikan secara eksternal, namun terkenal itu? Sepertinya \mBRE dan …



1
Apakah ada cara untuk mengubah Vim regex literal ke mode sihir yang berbeda?
Jika saya memiliki regex Vim ajaib dalam string literal, apakah ada cara untuk mengubah regex keseluruhan menjadi representasi alternatif yang menggunakan mode sulap yang berbeda, jadi saya bisa menempelkan regex yang setara ke dalam kode sumber? Misalnya, jika saya ingin mengubah pola mode-ajaib ini: '\m-\=\<\d\+L\=\>\|0[xX][0-9a-fA-F]\+\>' ke mode yang sangat ajaib …


1
Lipat dengan pola pencarian regex
Saya mendapat file teks biasa dengan kolom nilai yang dipisahkan spasi. Seperti ini: AU 3030 .... ... .... AU 3031 .... ... .... AU 3032 .... ... .... AU 3033 .... ... .... IT 48100 ... .. ..... IT 40100 ... .. ..... IT 48123 ... .. ..... UK 3333 …

1
Menghapus rentang n baris sebelum dan sesudah baris yang cocok?
Saya memiliki file konfigurasi berulang dan saya ingin mencocokkan regex dan menghapus berbagai baris sebelum, dan setelah pertandingan. Saya juga ingin menghapus kecocokan dalam satu perintah. Saya bisa menggunakan ... :g/match/-1d ... beberapa kali untuk menghapus lebih dari satu baris dari sebelum pertandingan ... ... dan gabungkan dengan beberapa panggilan …


11
Gantikan kemunculan kedua secara online
Saya punya daftar file: ./a.temp.txt ./a.temp.txt ./a/b.temp.txt ./a/b.temp.txt ./a/b/c.temp.txt ./a/b/c.temp.txt Dan saya ingin menghapus temp.pada setiap baris, tetapi hanya kejadian kedua , dengan demikian, file tersebut akan terlihat seperti: ./a.temp.txt ./a.txt ./a/b.temp.txt ./a/b.txt ./a/b/c.temp.txt ./a/b/c.txt Bagaimana saya harus melakukan ini?

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.