Menggunakan ekspresi reguler dalam Visual Studio

Visual Studio menggunakan ekspresi reguler .NET untuk menemukan dan mengganti teks.

Contoh ekspresi reguler

Tabel berikut berisi beberapa karakter ekspresi reguler, operator, konstruksi, dan contoh pola. Untuk referensi yang lebih lengkap, lihat Bahasa ekspresi reguler.

Tujuan Expression Contoh
Cocokkan karakter tunggal apa pun (kecuali pemisah baris). Untuk informasi selengkapnya, lihat Karakter apa pun. . a.o cocok dengan "aro" di "sekitar" dan "abo" di "tentang" tetapi bukan "acro" di "di seluruh"
Cocokkan nol atau lebih kemunculan ekspresi sebelumnya (cocok dengan karakter sebanyak mungkin). Untuk informasi selengkapnya, lihat Mencocokkan nol atau lebih kali. * a*r cocok dengan "r" dalam "rak", "ar" dalam "ark", dan "aar" dalam "aardvark"
Cocokkan karakter apa pun nol atau lebih kali. .* c.*e cocok dengan "cke" dalam "racket", "comme" dalam "comment", dan "code" dalam "code"
Cocokkan satu atau beberapa kemunculan ekspresi sebelumnya (cocokkan karakter sebanyak mungkin). Untuk informasi selengkapnya, lihat Cocokkan satu atau beberapa kali. + e+d cocok dengan "eed" dalam "feeder" dan "ed" dalam "pudar"
Mencocokkan karakter apa pun satu atau beberapa kali. .+ e.+e cocok dengan "eede" dalam "pengumpan" tetapi tidak menemukan kecocokan dalam "umpan"
Cocokkan nol atau lebih kemunculan ekspresi sebelumnya (cocokkan karakter sesegel mungkin). Untuk informasi selengkapnya, lihat Mencocokkan nol atau lebih kali (kecocokan malas). *? \w*?d cocok dengan "fad" dan "ed" dalam "pudar" tetapi tidak seluruh kata "pudar" karena kecocokan malas
Cocokkan satu atau beberapa kemunculan ekspresi sebelumnya (cocokkan karakter sesegel mungkin). Untuk informasi selengkapnya, lihat Cocokkan satu atau beberapa kali (pencocokan malas). +? e\w+? cocok dengan "ee" dalam "tertidur" dan "ed" dalam "pudar" tetapi tidak menemukan kecocokan dalam "pudar"
Jangkar string pencocokan ke awal baris atau string ^ ^car cocok dengan kata "mobil" hanya ketika muncul di awal garis
Jangkar string pencocokan ke akhir baris \r?$ car\r?$ cocok dengan "mobil" hanya ketika muncul di akhir garis
Jangkar string pencocokan ke akhir file $ car$ cocok dengan "mobil" hanya ketika muncul di akhir file
Mencocokkan satu karakter dalam satu set [abc] b[abc] cocok dengan "ba", "bb", dan "bc"
Mencocokkan karakter apa pun dalam berbagai karakter [a-f] be[n-t] cocok dengan "taruhan" di "antara", "ben" di "di bawah", dan "bes" di "samping", tetapi tidak menemukan kecocokan di "bawah"
Mengambil dan secara implisit menomori ekspresi yang terkandung dalam tanda kurung () ([a-z])X\1 cocok dengan "aXa" dan "bXb", tetapi bukan "aXb". "\1" mengacu pada grup ekspresi pertama "[a-z]". Untuk informasi selengkapnya, lihat Menangkap grup dan pola penggantian.
Membatalkan kecocokan (?! abc) real(?!ity) cocok dengan "nyata" dalam "realty" dan "benar-benar" tetapi tidak dalam "realitas." Ini juga menemukan "nyata" kedua (tetapi bukan yang pertama "nyata") dalam "realityreal".
Cocokkan karakter apa pun yang tidak berada dalam sekumpulan karakter tertentu. Untuk informasi selengkapnya, lihat Grup karakter negatif. [^abc] be[^n-t] cocok dengan "bef" dalam "before", "beh" di "behind", dan "bel" di "below", tetapi tidak menemukan kecocokan di "di bawah"
Cocokkan ekspresi sebelum atau yang setelah simbol | (sponge|mud) bath cocok dengan "mandi spons" dan "mandi lumpur"
Lolos dari karakter setelah garis miring terbelakang \ \^ cocok dengan karakter ^
Tentukan jumlah kemunculan karakter atau grup sebelumnya. Untuk informasi selengkapnya, lihat Cocokkan tepat n kali. {n}, di mana 'n' adalah jumlah kemunculan x(ab){2}x cocok dengan "xababx"
x(ab){2,3}x cocok dengan "xababx" dan "xabababx" tetapi bukan "xababababx"
Cocokkan teks dalam kategori Unicode. Untuk informasi selengkapnya tentang kelas karakter Unicode, lihat Properti Karakter Unicode Standard 15.0. \p{X}, di mana "X" adalah nomor Unicode. \p{Lu} cocok dengan "T" dan "D" dalam "Thomas Doe"
Mencocokkan batas kata \b (Di luar kelas \b karakter menentukan batas kata, dan di dalam kelas \b karakter menentukan backspace.) \bin cocok dengan "in" di "inside" tetapi tidak menemukan kecocokan dalam "pinto"
Cocokkan hentian baris (yaitu, pengembalian gerbong diikuti oleh baris baru) \r?\n End\r?\nBegin cocok dengan "End" dan "Begin" hanya ketika "End" adalah string terakhir dalam baris dan "Begin" adalah string pertama di baris berikutnya
Cocok dengan karakter kata apa pun \w a\wd cocok dengan "tambahkan" dan "a1d" tetapi bukan "a d"
Mencocokkan karakter spasi kosong apa pun \s Public\sInterface cocok dengan frasa "Antarmuka Publik"
Cocok dengan karakter digit desimal apa pun \d \d cocok dengan "4" dan "0" dalam "wd40"

Contoh ekspresi reguler yang menggabungkan beberapa operator dan konstruksi agar sesuai dengan angka heksadesimal adalah \b0[xX]([0-9a-fA-F]+)\b. Ekspresi ini cocok dengan "0xc67f" tetapi bukan "0xc67g".

Tip

Dalam sistem operasi Windows, sebagian besar baris berakhiran "\r\n" (pengembalian pengangkutan diikuti oleh baris baru). Karakter ini tidak terlihat tetapi ada di editor dan diteruskan ke layanan ekspresi reguler .NET.

Mengambil grup dan pola penggantian

Grup pengambilan menguraikan subekspresi ekspresi reguler dan menangkap substring string input. Anda dapat menggunakan grup yang diambil dalam ekspresi reguler itu sendiri (misalnya, untuk mencari kata berulang), atau dalam pola pengganti. Untuk informasi terperinci, lihat Konstruksi pengelompokan dalam ekspresi reguler.

Untuk membuat grup pengambilan bernomor, kelilingi subekspresi dengan tanda kurung dalam pola ekspresi reguler. Pengambilan dinomorkan secara otomatis dari kiri ke kanan berdasarkan posisi tanda kurung pembuka dalam ekspresi reguler. Untuk mengakses grup yang diambil, pertimbangkan contoh berikut:

  • Dalam ekspresi reguler: Gunakan \number. Misalnya, \1 dalam ekspresi (\w+)\s\1 reguler mereferensikan grup (\w+)pengambilan pertama .

  • Dalam pola pengganti: Gunakan $number. Misalnya, ekspresi (\d)([a-z]) reguler yang dikelompokkan mendefinisikan dua grup: grup pertama berisi satu digit desimal, dan grup kedua berisi satu karakter antara a dan z. Ekspresi menemukan empat kecocokan dalam string berikut: 1a 2b 3c 4d. String z$1 pengganti mereferensikan grup pertama saja ($1), dan mengonversi string menjadi z1 z2 z3 z4.

Gambar berikut menunjukkan ekspresi (\w+)\s\1 reguler dan string $1pengganti . Ekspresi reguler dan pola pengganti mereferensikan grup pengambilan pertama yang secara otomatis bernomor 1. Saat Anda memilih Ganti semua dalam kotak dialog Ganti Cepat di Visual Studio, kata-kata berulang dihapus dari teks.

Screenshot of Quick Replace showing a numbered capture group in Visual Studio.

Tip

Dalam kotak dialog Ganti Cepat, pastikan untuk memilih tombol Gunakan Ekspresi Reguler, atau tekan Alt+E.

Grup penangkapan bernama

Alih-alih mengandalkan penomoran otomatis grup pengambilan, Anda dapat memberinya nama. Sintaks untuk grup pengambilan bernama adalah (?<name>subexpression).

Grup pengambilan bernama, seperti grup pengambilan bernomor, dapat digunakan dalam ekspresi reguler itu sendiri atau dalam pola pengganti. Untuk mengakses grup pengambilan bernama, pertimbangkan contoh berikut:

  • Dalam ekspresi reguler: Gunakan \k<name>. Misalnya, \k<repeated> dalam ekspresi (?<repeated>\w+)\s\k<repeated> reguler mereferensikan grup pengambilan yang diberi nama repeated dan yang subekspresinya adalah \w+.

  • Dalam pola pengganti: Gunakan ${name}. Contohnya, ${repeated}.

Gambar berikut menunjukkan ekspresi (?<repeated>\w+)\s\k<repeated> reguler dan string ${repeated}pengganti . Ekspresi reguler dan pola pengganti mereferensikan grup pengambilan bernama repeated. Saat Anda memilih Ganti semua dalam kotak dialog Ganti Cepat di Visual Studio, kata-kata berulang dihapus dari teks.

Screenshot of Quick Replace showing a named capture group in Visual Studio.

Tip

Pastikan untuk memilih tombol Gunakan Ekspresi Reguler (atau tekan Alt+E) di kotak dialog Ganti Cepat.

Untuk informasi selengkapnya tentang grup penangkapan bernama, lihat Subekspresi yang cocok bernama. Untuk informasi selengkapnya tentang ekspresi reguler yang digunakan dalam pola penggantian, lihat Substitusi dalam ekspresi reguler.