Apa itu ungkapan biasa?
Sebelum kita menuju contoh praktikal, kita perlu mengetahui apa sebenarnya ungkapan biasa. Ungkapan biasa adalah urutan watak yang menentukan struktur input atau corak carian. Bayangkan memasukkan e-mel atau kata laluan di beberapa laman web rawak seperti Facebook, Twitter atau Microsoft. Cuba salahkan dan salah maksud saya cuba menentang konvensyen mereka. Ini dengan jelas akan menunjukkan kesalahan tersebut untuk anda. Anda tidak akan dibenarkan untuk melangkah ke tahap seterusnya sehingga input anda sesuai dengan corak yang telah mereka tetapkan di backend. Corak khusus itu, yang melarang anda memasukkan maklumat tambahan atau tidak berkaitan, dikenali sebagai regex atau ungkapan biasa.
Ungkapan Biasa di Python
Ungkapan biasa tidak memainkan peranan yang berbeza dalam python seperti dalam bahasa pengaturcaraan lain. Python mengandungi modul semula yang memberikan sokongan penuh untuk penggunaan ungkapan biasa. Bila-bila masa maklumat yang tidak sesuai atau tidak sesuai dimasukkan atau apa-apa kesalahan berlaku, ini semula modul akan menganggapnya sebagai pengecualian yang akhirnya dapat menyelesaikan masalah yang diperlukan.
Corak Ungkapan Biasa
Terdapat banyak watak yang tersedia ditulis dalam urutan yang membuat corak ekspresi biasa tertentu. Kecuali watak kawalan, (+ ? . * ^ $ () [] | \), semua watak sesuai dengan diri mereka sendiri. Walau bagaimanapun, watak kawalan dapat dielakkan dengan menuliskan garis miring terbalik.
Berikut adalah jadual yang terdiri daripada corak dan keterangan mengenai cara mereka bekerja di python.
Corak | Penerangan | |
[Pp] ython | Padankan "Python" atau "python" | |
Tabung [Ee] | Padankan "Tiub" atau "Tiub" | |
[aeiou] | Padankan huruf vokal apa pun | |
[0-9] | Padankan sebarang digit antara 0 hingga 9 | |
[a-z] | Padankan mana-mana huruf ASCII huruf kecil | |
[A-Z] | Padankan mana-mana huruf besar ASCII | |
[a-zA-Z0-9] | Padankan mana-mana huruf kecil, huruf besar ASCII atau digit antara 0 hingga 9 | |
[^ aeiou] | Padankan apa sahaja kecuali vokal huruf kecil | |
[^ 0-9] | Padankan apa sahaja tetapi bukan digit | |
. | Padankan watak apa pun kecuali barisan baru | |
\ d | Padankan sebarang digit: [0-9] | |
\ D | Padankan bukan digit: [^ 0-9] | |
\ s | Padankan ruang putih | |
\ S | Padankan ruang bukan putih | |
\ A | Padankan rentetan awal | |
\ Z | Padankan hujung tali | |
\ w | Memadankan watak perkataan | |
\ W | Padankan watak bukan perkataan | |
[…] | Padankan mana-mana watak dalam tanda kurung | |
[^…] | Padankan mana-mana watak tunggal yang tidak terdapat dalam tanda kurung | |
$ | Padankan hujung baris | |
^ | Padankan permulaan baris |
Fungsi Padankan dan Cari di Python
Sekarang, di sini kita akan melihat dua contoh dengan dua fungsi terbina dalam yang ada di python. Satu adalah padanan dan yang lain adalah fungsi carian. Kedua-duanya mengambil parameter yang sama seperti berikut:
- Corak - Ungkapan biasa untuk dipadankan atau dicari.
- Tali - Rentetan yang akan dipadankan atau dicari dalam ayat atau input.
Sebelum kita masuk ke bahagian contoh di sini adalah perkara lain yang perlu anda ketahui. Dua kaedah boleh digunakan untuk mendapatkan kumpulan pencocokan seperti berikut:
- kumpulan ()
- kumpulan (bilangan = 0,1,2…)
Apa yang berlaku ialah apabila fungsi pencocokan atau carian digunakan, ia menjadikan subkumpulan dari semua corak yang berkaitan yang terdapat dalam rentetan dan menyusunnya pada kedudukan bermula dari 0. Lihat contoh di bawah untuk mendapatkan idea yang lebih baik.
Fungsi Padanan (Contoh)
Dalam contoh berikut, kami telah mengambil senarai di mana kami telah menggunakan ungkapan biasa yang memeriksa kata-kata yang dimulai dengan huruf 'a' dan akan memilih hanya jika kedua-dua kata itu dimulai dengan huruf yang sama i.e.: 'a'.
import semulaarraylist = ["kasih sayang mempengaruhi", "tindakan sayang", "pengaturcaraan kasih sayang"]
untuk elemen dalam senarai tatasusunan:
k = semula.padanan ("(a \ w +) \ W (g \ w +)", elemen)
jika k:
mencetak ((z.kumpulan ()))
Pengeluaran:
('kasih sayang', 'mempengaruhi')('kasih sayang', 'perbuatan')
Elemen ketiga dalam senarai tidak akan dipertimbangkan kerana tidak sesuai dengan regex yang mengatakan bahawa kedua-dua perkataan harus dimulai dengan 'a'.
Fungsi Cari (Contoh)
Fungsi ini berbeza dengan pertandingan. Carian mengimbas keseluruhan ayat sementara padanan tidak. Dalam contoh berikut, kaedah Cari berjaya tetapi fungsi padanan tidak.
import semulaInput = "DokumentasiBaru"
v = semula.cari (“(ta.*) ", Input)
jika v:
cetak ("hasil:" v.kumpulan (1))
Pengeluaran:
hasil: tationNew'ta.* 'bermaksud apa-apa selepas' ta 'yang memberi kita hasil kita sebagai' tationNew 'dari Input yang dicari "DocumentationNew".
Kesimpulannya
Ekspresi Biasa sangat penting untuk semua pembangun perisian dan sekarang anda dapat melihat dengan mudah bagaimana menggunakan Ekspresi Biasa dalam bahasa pengaturcaraan Python.