Panduan Pemula untuk Ekspresi Reguler Dengan Python

Panduan Pemula untuk Ekspresi Reguler Dengan Python

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





Panduan ini adalah semua 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 output perintah atau dokumen.





Ada berbagai kasus penggunaan ekspresi reguler, yang paling terkenal adalah perintah grep di Linux . Aplikasi lain termasuk penyaringan informasi seperti mengekstrak alamat email dan nomor telepon dari dump data.

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



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

apakah dering kompatibel dengan google home

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. membantu dalam pencocokan tingkat tinggi.





  1. Tanda bintang (*): Mencocokkan karakter sebelumnya nol kali atau lebih. Arti harfiah 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 [sm]* akan cocok dengan bc, bcbc, bcbc, dll.
  2. Lebih banyak (+): Mencocokkan karakter sebelumnya satu kali atau lebih. Bekerjanya + karakternya mirip dengan * , tetapi + karakter menghilangkan pola jika karakter tidak muncul. Sebagai contoh, abc + akan cocok dengan abc, abcc, abccc, dll. tetapi tidak ab.
  3. Tanda tanya (?): Cocok dengan karakter sebelumnya nol atau satu kali. Misalnya pola abc? akan cocok dengan ab dan abc saja.
  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 mencocokkan kata-kata yang dimulai dengan Keluar seperti Kelinci, Rakun, dan Acak.
  7. Dolar ($): Cocok dengan karakter terakhir dalam pola. Sebagai contoh, sebuah$ akan cocok dengan kata-kata yang berakhiran dengan NS seperti Van, Dan, dan Plan.
  8. Tanda hubung (-): Digunakan untuk mendefinisikan berbagai karakter. Sebagai contoh, [0-9] akan cocok dengan semua karakter numerik satu digit.

Urutan khusus yang digunakan dalam pola ekspresi reguler adalah:

  1. KE: Mengembalikan kecocokan jika karakter berikutnya ada di awal string. Sebagai contoh, A akan mencocokkan kata-kata yang dimulai dengan NS seperti Mereka, Mereka, Mereka, dll.
  2. B: Mengembalikan kecocokan jika karakter ditemukan di awal atau di akhir kata. Sebagai contoh, bmad dan gila akan cocok dengan kata-kata seperti dibuat dan pengembara masing-masing.
  3. B: Mengembalikan kecocokan jika karakter tidak ditemukan di awal atau akhir kata.
  4. D: Mencocokkan karakter numerik yang ada dalam string. Sebagai contoh, /D* akan cocok dengan angka seperti 1, 12, 1232, dll.
  5. D: Mencocokkan karakter non-numerik dalam string. /D akan cocok dengan a, b, c, f, dll.
  6. S: Mencocokkan karakter spasi putih dalam teks.
  7. S: Mencocokkan karakter non-spasi dalam teks.
  8. di dalam: Mengembalikan kecocokan jika string berisi karakter alfanumerik termasuk garis bawah. Sebagai contoh, di dalam akan cocok dengan a, b, c, d, 1, 2, 3, dll.
  9. DI DALAM: Mengembalikan kecocokan jika string tidak berisi karakter alfanumerik atau garis bawah.
  10. DENGAN: Mencocokkan karakter di akhir string. Sebagai contoh, akhir akan cocok dengan kata-kata yang berakhiran dengan akhir seperti membengkokkan, memperbaiki, merawat, dll.

Metode Python untuk Ekspresi Reguler

Dengan Python, ulang library menyediakan semua fungsi dan utilitas yang diperlukan untuk mengimplementasikan regex di program Anda. Anda tidak perlu mengunduh perpustakaan menggunakan pip karena sudah diinstal sebelumnya dengan juru bahasa Python.





Untuk mengimpor ulang library di Python, tambahkan kode berikut ke skrip Anda:

import re

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

Cocok()

NS pertandingan ulang() metode dalam Python mengembalikan objek regex jika program menemukan kecocokan di awal string yang ditentukan. Fungsi ini membutuhkan dua argumen dasar:

re.match(pattern, string)

...di mana pola adalah ekspresi reguler dan rangkaian adalah teks yang perlu dicari.

Perhatikan cuplikan kode di bawah ini.

import re
match = re.match(r'Word', 'This sentence contains a Word')
print(match)

NS R karakter sebelum string singkatan string mentah.

Keluaran:

None

Kode yang disebutkan di atas kembali Tidak ada karena Kata tidak ada di awal string.

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

import re
match = re.match(r'Word', 'Word is hard to read')
print(match.group(0))

Keluaran:

Word

NS riset () metode mengambil argumen yang sama seperti re.match(). Sementara match() hanya mengembalikan kecocokan yang ada di awal string, Cari() akan mengembalikan kecocokan yang ditemukan di indeks mana pun dalam string.

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
print(match.group(0))

Perhatikan bahwa cocok() 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 kata pertama.

Word

Temukan semua()

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

import re
match = re.search(r'Word', 'This sentence contains a Word. Word is hard to read.')
for elem in match:
print(elem)

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

Membelah()

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

import re
split = re.split(r'and', 'This word and that and this are different.')
print(split)

Keluaran:

['This word', 'that', 'this are different.']

Sub()

NS sub() metode memungkinkan pengguna untuk mengganti kata tertentu di tempat pola. Dibutuhkan argumen berikut.

re.sub(pattern, replacement, string)

Pertimbangkan cuplikan kode ini:

import re
result = re.sub(r'and', 'or', 'Dave and Harry must be punished.')
print(result)

Keluaran:

Dave or Harry must be punished.

Menyusun()

NS kompilasi ulang() metode dalam ulang 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.

import re
pattern = re.compile('Python')
match = pattern.findall('Python is a great language for writing scripts. Python is easy to learn.')
print(match)

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

Manfaatkan Kekuatan Regex Dengan Python

Saat Anda bekerja dengan file teks dan output, regex adalah alat yang hebat untuk Anda miliki. Anda dapat dengan cepat menulis beberapa kode untuk memfilter atau mengganti pola tertentu dalam 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.

Membagikan Membagikan Menciak Surel Lembar Cheat RegEx Python untuk Pemrogram Pemula

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(79 Artikel Diterbitkan)

Deepesh adalah Editor Junior untuk Linux di MUO. Dia menulis panduan informasi di Linux, yang bertujuan untuk memberikan pengalaman yang menyenangkan bagi semua pendatang baru. Tidak yakin tentang film, tetapi jika Anda ingin berbicara tentang teknologi, dia adalah pria Anda. Di waktu luangnya, Anda dapat menemukannya membaca buku, mendengarkan berbagai genre musik, atau bermain gitar.

More From Deepesh Sharma

Berlangganan newsletter kami

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

Klik di sini untuk berlangganan