Apa itu Ekspresi Reguler?
Regex, atau ekspresi reguler, adalah markup pencocokan pola yang programmer digunakan untuk mencari pola tertentu dalam teks. Ekspresi reguler dapat mencari apa saja, tergantung bagaimana Anda menyusunnya; mereka digunakan di mana-mana oleh programmer karena mereka sangat berharga untuk membantu komputer memilah-milah data dengan cepat dan menyaring omong kosong yang jika tidak dapat menyebabkan kesalahan.
Ekspresi reguler cenderung terlihat menakutkan, terutama untuk non-programmer. Lihat saja ini:
[a-zA-Z0-9_.+-]+@[a-zA-Z0-9_-]+\.[a-zA-Z0-9_.-]+
Secara realistis, sebenarnya tidak terlalu buruk; yang cocok dengan alamat email. Seperti yang akan Anda lihat, ekspresi dapat dipecah menjadi karakter individual, yang semuanya memberi tahu program apa yang harus dicari.
Ekspresi reguler hampir universal. Jenderal yang sama sintaksis berlaku di semua bahasa dengan hanya sedikit variasi di sana-sini. Panduan ini berisi contoh dari Python dan JavaScript serta regex lama biasa. Jika Anda bekerja dengan bahasa yang berbeda, jangan khawatir. Hampir semuanya akan berlaku untuk bahasa pilihan Anda juga.
Dasar Regex Reg
Secara teknis, tidak banyak hal yang tidak dapat dianggap sebagai ekspresi reguler, karena string teks literal benar-benar sederhana. Jika Anda menggunakan 'abcde' sebagai ekspresi reguler, bahasa pemrograman akan mencari string yang tepat.
Karakter pencocokan dinamis pertama yang harus dilihat adalah '.' karakter. Dalam konteks ini, karakter titik adalah wildcard. Jika Anda mencarinya, program Anda akan mengembalikan karakter apa pun yang ditemukan sebagai kecocokan.
Jadi, bagaimana jika Anda ingin mencari titik literal? Itu juga tidak sulit. Bila Anda ingin menggunakan titik literal, tambahkan garis miring terbalik di depannya, seperti ini: '\.'
Karakter Garis Miring Balik
Garis miring terbalik memainkan lebih banyak peran di sini. Sebagian besar karakter regex utama menyertakan garis miring terbalik.

Lihatlah beberapa contoh:
- \d: Digit dari 0 hingga 9
- \w: "Karakter Kata" huruf, angka, dan garis bawah
- \s: Karakter spasi putih, termasuk tab, baris baru, dan spasi biasa
Jika Anda menggunakan huruf kapital sebagai gantinya dengan salah satu dari ini, Anda akan mendapatkan kebalikannya. Misalnya, '\ D' memberi Anda segalanya kecuali angka.
Kelas
Itu karakter garis miring terbalik bagus, tapi mereka masih agak kaku. Umumnya, Anda ingin mencocokkan huruf, angka, atau beberapa karakter khusus.

Tempatkan karakter yang ingin Anda cocokkan dalam sepasang tanda kurung siku '[]', dan program Anda akan cocok dengan salah satu karakter tersebut. Ini disebut kelas regex.
[abcd1234]
Contoh di atas masih belum efisien. Sebagai gantinya, Anda dapat menggunakan tanda hubung untuk menentukan rentang; misalnya, semua huruf kecil:
[a-z]
Anda juga dapat membuat daftar rentang. Ekspresi di bawah ini cocok dengan semua huruf dan angka:
[a-zA-Z0-9]
Jika Anda akan menyertakan tanda hubung dalam kumpulan karakter Anda, tempelkan di bagian akhir untuk mencegahnya dievaluasi. Ia bekerja dengan karakter khusus lainnya, juga.
[a-zA-Z0-9_.+-]
Seperti dengan karakter garis miring terbalik, Anda juga bisa mendapatkan hasil terbalik di sini. Tempatkan '^' di awal kelas Anda untuk mengecualikannya dari hasil Anda. Ini akan mengecualikan digit dan beberapa karakter khusus dari hasil:
[^0-9_+.-]
Grup
Grup menggunakan sekumpulan tanda kurung untuk memisahkan ekspresi Anda. Mereka mengelompokkan data, memungkinkan program Anda untuk menargetkan dan menggunakannya. Ketika sebuah program menghapus ' http://' dari alamat web, itu menggunakan grup regex untuk mencapai itu. Regex memungkinkannya menargetkan kriteria tertentu, dan grup membiarkannya memisahkan bagian.

Grup juga memungkinkan Anda memilih antara satu pola atau lainnya. Mereka menggunakan satu '|' untuk bertindak sebagai "atau" dalam ekspresi. Ekspresi di bawah ini akan cocok dengan salah satu dari ini: .com, .org, .net, .edu, atau .gov.
\.(com|org|net|edu|gov)
Kuantifier
Quantifier persis seperti apa suaranya. Mereka memberi tahu ekspresi jumlah karakter yang Anda cari. Ini adalah quantifier yang tersedia:
- *: Nol atau lebih
- +: Satu atau lebih
- ?: Nol atau satu
- {3}: Jumlah dalam tanda kurung
Tempatkan salah satu dari quantifier ini di akhir karakter atau kelas yang ingin Anda tentukan jumlahnya. Contoh ini mencari nomor telepon standar tujuh digit:
\d{3}[.*-]\d{3}[.*-]\d{4}
Jangkar dan Batas
Ekspresi reguler memungkinkan Anda mencari pola berdasarkan posisinya dalam string teks atau di sekitar kata.

Ini adalah opsi utama Anda:
- ^: Awal dari sebuah string
- $: Akhir dari sebuah string
- \b: Batas kata (awal atau akhir kata)
Jika Anda hanya ingin menemukan string yang dimulai dengan huruf, Anda dapat mencoba:
^[a-zA-Z]
Katakanlah Anda hanya ingin menemukan kata "itu", bukan kata-kata yang mengandung huruf I dan T; di situlah Anda akan menggunakan batas kata.
\b (i| Saya)t\b
Pikiran Akhir
Ekspresi reguler dapat menghemat banyak sakit kepala saat memprogram. Bayangkan mencoba menulis logika untuk menyelesaikan salah satu contoh dalam artikel ini. Itu akan menjadi kekacauan yang mengerikan. Setelah Anda merasa nyaman dengan mereka, Anda mungkin akan menemukan diri Anda benar-benar menikmati kekuatan dan fleksibilitas regex.