Singkatan dari ekspresi regulerA ekspresi reguler adalah serangkaian teks yang memungkinkan Anda membuat pola yang membantu mencocokkan, menemukan, dan mengelola teks. Perl adalah contoh bahasa pemrograman yang menggunakan ekspresi reguler. Namun, ini hanyalah salah satu dari banyak tempat Anda dapat menemukan ekspresi reguler. Ekspresi reguler juga dapat digunakan dari baris perintah dan di editor teks untuk menemukan teks dalam suatu berkas.
Saat pertama kali mencoba memahami ekspresi reguler, tampaknya ini adalah bahasa yang berbeda. Namun, menguasai ekspresi reguler dapat menghemat waktu Anda ribuan jam jika Anda bekerja dengan teks atau perlu mengurai data dalam jumlah besar. Berikut adalah contoh ekspresi reguler dengan setiap komponennya diberi label. Ekspresi reguler ini juga ditampilkan dalam contoh pemrograman Perl yang ditampilkan nanti di halaman ini.
Dasar-dasar ekspresi reguler (lembar contekan)
Melihat contoh di atas mungkin membingungkan. Namun, setelah Anda memahami sintaks dasar tentang cara kerja perintah ekspresi reguler, Anda dapat membaca contoh di atas seolah-olah Anda sedang membaca kalimat ini. Sayangnya, tidak semua program, perintah, dan bahasa pemrograman menggunakan ekspresi reguler yang sama, tetapi semuanya memiliki kesamaan.
Karakter | Apa fungsinya? | Contoh | Pertandingan |
---|---|---|---|
^ | Cocok dengan awal baris | ^abc | abc, abcdef.., abc123 |
Bahasa Indonesia: $ | Pertandingan akhir baris | abc$ | saya:abc, 123abc, theabc |
. | Cocokkan karakter apa pun | ac | abc, asg, a2c |
Bahasa Indonesia: |
Operator ATAU |
abc|kata kunci | abc atau xyz |
(…) |
Tangkap apa pun yang cocok |
(a) dan (b) | Menangkap 'a' dan 'c' |
(?:…) | Kelompok non-penangkap | (a)(b)(c) atau (c)(c) | Menangkap 'a' tetapi hanya mengelompokkan 'c' |
[…] | Mencocokkan apa pun yang ada dalam tanda kurung | [abc] | a, b, atau c |
[^…] | Mencocokkan apa pun yang tidak ada dalam tanda kurung | [^abc] | xyz, 123, 1 hari |
[a-z] | Mencocokkan karakter apa pun antara 'a' dan 'z' | [b-z] | bc, pikiran, xyz |
{X} | Jumlah waktu yang tepat 'x' untuk mencocokkan | {2}bahasa inggris | abjad abjad |
{X,} | Cocokkan 'x' sejumlah kali atau lebih | {2} adalah singkatan dari {2}. | abc, abcabcabc |
{x,y} | Cocokkan antara waktu 'x' dan 'y'. | (a){2,4} | aa, aa, aaaaa |
* |
Pertandingan serakah yang mencocokkan semua yang ada di tempat * |
ab*c | abc, abbcc, abcdc |
+ | Mencocokkan karakter sebelum + satu kali atau lebih | sebuah + c | ac, aac, aaac, |
…. | Mencocokkan karakter sebelum ? nol atau satu kali. Juga, digunakan sebagai pencocokan non-serakah | sebuah?c | abc, … |
Bahasa Indonesia: | Melarikan diri dari karakter setelah garis miring terbalik atau membuat urutan escape. | sebuah\sc | ac |
Karakter escape (urutan escape)
Karakter escape peka terhadap huruf besar/kecil.
Karakter | Apa fungsinya? |
---|---|
Bahasa Indonesia: | Karakter apa pun yang tidak disebutkan di bawah ini yang diawali dengan \ akan di-escape. Misalnya, \. cocok dengan titik dan tidak menjalankan fungsi yang disebutkan di atas. Karakter yang harus di-escape adalah () [] { } ^ $ . | * + ? \ |
Bahasa Indonesia: \0 |
Karakter nol. |
\A | Dalam Perl, \a adalah bel atau alarm dan tidak digunakan dalam ekspresi reguler. |
\A | Mencocokkan awal string multiline. |
\B | Batas kata di sebagian besar atau backspace. |
\B | Tidak ada batas kata. |
\D | Cocokkan digit desimal apa pun (0-9). |
\D | Cocokkan dengan non digit mana pun. |
\e | Cocokkan pelarian. |
\F | Cocokkan umpan formulir. |
Bahasa Indonesia: \l |
Mengubah huruf pertama dalam suatu pertandingan menjadi huruf kecil. |
\L | Semua huruf kecil cocok. |
\N | Cocokkan baris baru. |
\P…\E | Mengabaikan makna khusus apa pun dalam apa yang dicocokkan. |
\R | Mencocokkan pengembalian kereta. |
\S | Mencocokkan karakter spasi (spasi, \t, \r, \n). |
\S | Mencocokkan semua karakter selain spasi. |
\T | Cocokkan tab. |
\kamu |
Menjadikan huruf pertama pada pertandingan menjadi huruf kapital. |
\Kamu | Semua huruf besar cocok. |
Bahasa Indonesia: \v | Cocokkan tab vertikal. |
\w | Mencocokkan salah satu karakter kata ([a-zA-Z_0-9]). |
\W | Mencocokkan satu karakter non-kata. |
Bendera ekspresi reguler
Di luar ekspresi reguler (di akhir) bendera membantu pencocokan pola.
Karakter | Apa fungsinya? |
---|---|
Saya | Abaikan huruf besar/kecilnya (huruf besar dan kecil diperbolehkan). |
M | Pencocokan multi-garis. |
S | Cocokkan baris baru. |
X | Berikan spasi dan komentar. |
J | Nama grup duplikat diperbolehkan. |
kamu |
Pertandingan yang tidak serakah. |
Contoh ekspresi reguler bahasa pemrograman Perl
Berikut ini adalah beberapa contoh ekspresi reguler dan pencocokan pola dalam Perl. Banyak dari contoh ini yang serupa atau sama dengan bahasa pemrograman dan program lain yang mendukung ekspresi reguler.
$data =~ s/bad data/good data/i;
Contoh di atas mengganti “data buruk” dengan “data baik” menggunakan pencocokan yang tidak peka huruf besar/kecil. Jadi jika variabel $data adalah “Berikut data buruk”, maka akan menjadi “Berikut data baik”.
$data =~ s/a/A/;
Contoh ini mengganti huruf kecil apa pun A dengan huruf kapital AJadi jika $data adalah “example” maka akan menjadi “exAmple”.
$data =~ s/[a-z]/*/;
Contoh di atas mengganti huruf kecil apa pun, a hingga z, dengan tanda bintang. Jadi, jika $data adalah “Contoh”, maka akan menjadi “E******”.
$data =~ s/e$/es/;
Contoh ini menggunakan karakter $, yang memberi tahu ekspresi reguler untuk mencocokkan teks sebelumnya di akhir string. Jadi, jika $data adalah “example”, maka akan menjadi “examples”.
$data =~ s/\./!/;
Dalam contoh di atas, kita mengganti titik dengan tanda seru. Karena titik adalah metakarakter, jika Anda hanya memasukkan titik tanpa \ (escape), maka titik tersebut akan dianggap sebagai karakter apa pun. Dalam contoh ini, jika $data adalah “example.” maka akan menjadi “example!”, namun, jika Anda tidak memiliki escape, maka akan mengganti setiap karakter dan menjadi “!!!!!!!!”
$data =~ s/^e/E/;
Terakhir, dalam contoh di atas, tanda sisipan ( ^ ) memberi tahu ekspresi reguler untuk mencocokkan apa pun di awal baris. Dalam contoh ini, huruf kecil “e” apa pun di awal baris diganti dengan huruf kapital “E.” Oleh karena itu, jika $data adalah “example” maka akan menjadi “Example”.
Untuk mengeksplorasi ekspresi reguler lebih jauh dalam perintah seperti grep, atau ekspresi reguler dalam bahasa pemrograman, lihat buku O'Reilly “Mastering regular expression.”
Baris kode manakah berikut ini yang berisi contoh ekspresi reguler?
1. $ekspresi = 1;
2. @ekspresi saya;
3. $total = $eksp + $eksp2;
4. Jumlah total = ~ s/[0-9]+/\*//g;
Akronim komputer, Urutan escape, Ekspresi, Ekspresi reguler yang diperluas, Glob, Metakarakter, Istilah pemrograman, Reguler, Tilde, Wildcard