Jika Anda seorang programmer, kemungkinan besar Anda sudah tahu apa itu ekspresi reguler (regex). Pola regex telah diterapkan di hampir semua bahasa pemrograman utama, tetapi tetap saja, kekuatan dan keserbagunaan pola ini tidak dikenali oleh sebagian besar developer.

Panduan ini membahas tentang ekspresi reguler dan bagaimana Anda dapat menggunakannya dalam bahasa pemrograman Python.

Apa Itu Ekspresi Reguler?

Ekspresi reguler adalah pola yang membantu pengguna mencocokkan kombinasi karakter dalam file teks dan string. Anda dapat menggunakan ekspresi reguler untuk memfilter atau menemukan pola tertentu dalam keluaran dari perintah atau dokumen.

Ada berbagai kasus penggunaan ekspresi reguler, yang paling terkenal perintah grep di Linux. Aplikasi lain mencakup pemfilteran informasi seperti mengekstrak alamat email dan nomor telepon dari tempat pembuangan data.

Alasan utama mengapa banyak pengembang menyimpang dari ekspresi reguler adalah kurangnya kesadaran tentang kekuatan pencocokan pola. Beberapa bahkan menganggap ekspresi reguler membingungkan karena banyaknya karakter dan urutan yang digunakan dalam pola.

instagram viewer

Apa pun alasannya, ekspresi reguler adalah dan akan menjadi salah satu aspek terpenting dari pemrograman yang harus diketahui semua orang.

Ekspresi Reguler: Karakter dan Urutan yang Cocok

Regex adalah bahasa yang sama sekali baru. Mesin regex menafsirkan pola yang terdiri dari beberapa karakter yang dilengkapi dengan makna tertentu. Literal dasar seperti karakter alfanumerik cocok dengan dirinya sendiri. Tetapi karakter kompleks seperti $, *, +, {, dll. bantuan dalam pencocokan tingkat tinggi.

  1. Tanda bintang (*): Mencocokkan karakter sebelumnya sebanyak nol atau lebih. Arti literal dari karakter tersebut adalah "Elemen dikalikan n kali". Misalnya, jika ekspresi regulernya adalah abc *, string yang cocok adalah ab, abc, abcc, abccc, abcccc, dll. Ekspresi [bc] * akan cocok dengan bc, bcbc, bcbc, dll.
  2. Tanda tambah (+): Mencocokkan karakter sebelumnya satu kali atau lebih. Cara kerja + karakternya mirip dengan *, tetapi + karakter menghilangkan pola jika karakter tidak muncul. Sebagai contoh, abc + akan cocok dengan abc, abcc, abccc, dll. tapi tidak ab.
  3. Tanda tanya (?): Cocok dengan karakter sebelumnya nol atau satu kali. Misalnya saja polanya abc? hanya akan cocok dengan ab dan abc.
  4. Pipa (|): Digunakan sebagai biner ATAU operator. Cocok dengan salah satu karakter sebelum dan sesudah pipa. Sebagai contoh, a | b akan cocok dengan a atau b.
  5. Dot (.): Cocok dengan karakter yang identitasnya tidak diketahui. Sebagai contoh, a.c akan cocok dengan aac, abc, acc, a2c, dan seterusnya.
  6. Wortel (^): Cocok dengan karakter pertama dalam pola. Sebagai contoh, ^ Ra akan cocok dengan kata-kata yang dimulai dengan Ra seperti Rabbit, Raccoon, dan Random.
  7. Dolar ($): Cocok dengan karakter terakhir dalam pola. Sebagai contoh, sebuah $ akan cocok dengan kata yang diakhiri dengan sebuah seperti Van, Dan, dan Plan.
  8. Tanda hubung (-): Digunakan untuk menentukan berbagai karakter. Sebagai contoh, [0-9] akan cocok dengan semua karakter numerik satu digit.

Urutan khusus yang digunakan dalam pola ekspresi reguler adalah:

  1. \SEBUAH: Mengembalikan kecocokan jika karakter berikutnya ada di awal string. Sebagai contoh, \ Ahe akan cocok dengan kata-kata yang dimulai dengan Itu seperti The, Them, They, dll.
  2. \ b: Mengembalikan kecocokan jika karakter ditemukan di awal atau di akhir kata. Sebagai contoh, \ bmad dan gila \ b akan cocok dengan kata-kata seperti terbuat dan pengembara masing-masing.
  3. \ B: Mengembalikan kecocokan jika karakter tidak ditemukan di awal atau akhir kata.
  4. \ d: Cocok dengan karakter numerik yang ada dalam string. Sebagai contoh, /d* akan cocok dengan angka seperti 1, 12, 1232, dll.
  5. \ D: Cocok dengan karakter non-numerik dalam string. / D akan cocok dengan a, b, c, f, dll.
  6. \ s: Mencocokkan karakter spasi putih di teks.
  7. \ S: Mencocokkan karakter non-spasi dalam teks.
  8. \ w: Mengembalikan kecocokan jika string berisi karakter alfanumerik termasuk garis bawah. Sebagai contoh, \ w akan cocok dengan a, b, c, d, 1, 2, 3, dll.
  9. \ W: Mengembalikan kecocokan jika string tidak berisi karakter alfanumerik atau garis bawah.
  10. \ Z: Mencocokkan karakter di akhir string. Sebagai contoh, akhir \ Z akan cocok dengan kata yang diakhiri dengan akhir seperti menekuk, memperbaiki, merawat, dll.

Metode Python untuk Ekspresi Reguler

Dengan Python, file kembali library menyediakan semua fungsi dan utilitas yang diperlukan untuk mengimplementasikan regex dalam program Anda. Anda tidak perlu mengunduh pustaka menggunakan pip karena sudah diinstal sebelumnya dengan penerjemah Python.

Untuk mengimpor file kembali perpustakaan dengan Python, tambahkan kode berikut ke skrip Anda:

impor kembali

Perhatikan bahwa saat meneruskan ekspresi reguler dengan Python, kami menggunakan string mentah karena tidak menafsirkan karakter khusus seperti \ n dan \ t berbeda.

Pertandingan()

Itu re.match () metode di Python mengembalikan objek regex jika program menemukan kecocokan di awal string yang ditentukan. Fungsi ini membutuhkan dua argumen dasar:

re.match (pola, string)

...dimana pola adalah ekspresi reguler dan tali adalah teks yang perlu dicari.

Lihat cuplikan kode di bawah ini.

impor kembali
match = re.match (r'Word ', "Kalimat ini berisi Word")
cetak (cocok)

Itu r karakter sebelum string adalah singkatan dari string mentah.

Keluaran:

Tidak ada

Kode tersebut kembali Tidak ada karena Kata tidak ada di awal string.

Jika kecocokan ditemukan, Anda dapat mencetak kecocokan menggunakan kelompok() metode yang dimiliki objek regex.

impor kembali
match = re.match (r'Word ', "Kata sulit dibaca")
cetak (match.group (0))

Keluaran:

Kata

Cari()

Itu penelitian() metode mengambil argumen yang mirip dengan re.match (). Sementara match () hanya mengembalikan kecocokan yang ada di awal string, Cari() akan mengembalikan kecocokan yang ditemukan di indeks mana pun dalam string.

impor kembali
match = re.search (r'Word ', "Kalimat ini berisi Word. Kata sulit dibaca. ")
cetak (match.group (0))

Perhatikan bahwa file pertandingan() dan Cari() metode hanya akan mengembalikan satu kecocokan pola. Dalam kode yang disebutkan di atas, Kata muncul dua kali. Tetapi Cari() fungsi hanya akan cocok dengan kemunculan pertama kata tersebut.

Kata

Temukan semua()

Seperti yang sudah bisa Anda tebak, file Temukan semua() metode mengembalikan setiap kemungkinan kecocokan dalam string.

impor kembali
match = re.search (r'Word ', "Kalimat ini berisi Word. Kata sulit dibaca. ")
untuk elem dalam pertandingan:
cetak (elem)

Alih-alih mengembalikan objek regex, fungsi findall () mengembalikan daftar semua kecocokan. Anda dapat mengulangi daftar menggunakan file untuk loop dengan python.

Membagi()

Jika Anda ingin membagi string menjadi sub-string menggunakan pola sebagai pemisah, maka membagi() fungsi adalah yang Anda butuhkan.

impor kembali
split = re.split (r'and ', "Kata ini dan itu dan ini berbeda.")
cetak (split)

Keluaran:

['Kata "," itu "," ini berbeda. "]

Sub()

Itu sub() metode memungkinkan pengguna untuk mengganti kata tertentu di tempat pola. Ini membutuhkan argumen berikut.

re.sub (pola, penggantian, string)

Pertimbangkan cuplikan kode ini:

impor kembali
result = re.sub (r'and ',' or ', "Dave dan Harry harus dihukum.")
cetak (hasil)

Keluaran:

Dave atau Harry harus dihukum.

Menyusun()

Itu re.compile () metode di kembali library memungkinkan pengguna untuk menyimpan versi terkompilasi dari pola ekspresi reguler dalam memori. Kemudian, dengan menggunakan objek yang dikompilasi, pengguna dapat dengan cepat memfilter dump teks yang ditentukan untuk pola yang cocok.

impor kembali
pattern = re.compile ('Python')
match = pattern.findall ("Python adalah bahasa yang bagus untuk menulis skrip. Python mudah dipelajari. ")
cetak (cocok)

Fungsi ini terutama digunakan untuk menyimpan pola yang intensif sumber daya dan membutuhkan banyak waktu untuk dijalankan. Mengompilasi dan menyimpan pola sebagai objek sebelumnya memecahkan masalah ini.

Memanfaatkan Kekuatan Regex Dengan Python

Saat Anda bekerja dengan file teks dan keluaran, regex adalah alat yang hebat untuk Anda miliki. Anda dapat dengan cepat menulis beberapa kode untuk memfilter atau mengganti pola tertentu di dokumen.

Menghafal semua karakter dan urutan yang cocok bisa jadi sulit jika Anda baru memulai dengan regex. Untuk menjadi lebih baik dalam ekspresi reguler, mengacu pada daftar karakter, metode, dan urutan sesekali pasti akan membantu Anda dalam jangka panjang.

Surel
Lembar Cheat RegEx Python untuk Pemrogram Budding

Gunakan daftar ekspresi reguler Python ini sehingga Anda bisa menjadi lebih baik dalam menggunakan bahasa pemrograman serbaguna ini.

Baca Selanjutnya

Topik-topik yang berkaitan
  • Pemrograman
  • Pemrograman
  • Python
Tentang Penulis
Deepesh Sharma (41 Artikel Dipublikasikan)

Deepesh adalah Editor Junior untuk Linux di MUO. Dia telah menulis konten informasi di internet selama lebih dari 3 tahun. Di waktu luangnya, dia suka menulis, mendengarkan musik, dan bermain gitar.

Selebihnya Dari Deepesh Sharma

Berlangganan newsletter kami

Bergabunglah dengan buletin kami untuk mendapatkan tip teknologi, ulasan, ebook gratis, dan penawaran eksklusif!

Satu langkah lagi…!

Harap konfirmasi alamat email Anda di email yang baru saja kami kirimkan kepada Anda.

.