Ungkapan biasa, juga dikenali sebagai ungkapan biasa, ialah urutan aksara yang membentuk corak carian. Ia adalah salah satu alat yang berkuasa untuk padanan corak dan memanipulasi rentetan. Dalam python kita mempunyai modul yang dipanggil semula yang membantu dalam membentuk ungkapan biasa.
Ekspresi biasacorak terdiri daripada aksara biasa (cth. huruf, nombor) dan aksara khas yang dipanggil metacharacters. Metacharacter mempunyai makna istimewa dan membolehkan kami mentakrifkan corak carian yang kompleks. Berikut ialah beberapa aksara meta yang biasa digunakan dalam ungkapan biasa Python.
. (titik) - sepadan dengan mana-mana aksara kecuali baris baharu.
^ (karet)− sepadan dengan permulaan rentetan.
$(USD) - Padan dengan hujung rentetan.
* (asterisk) - Memadankan sifar atau lebih kejadian corak sebelumnya.
+ (tanda tambah) - Memadankan satu atau lebih kejadian pola sebelumnya.
? (tanda soal) - Padankan sifar atau satu kejadian bagi pola sebelumnya.
[] (kurung segi empat sama) - Mentakrifkan kelas aksara dan memadankan mana-mana aksara tunggal dalam kurungan segi empat sama.
() (kurungan) - Corak kumpulan dan tangkap subrentetan yang sepadan.
(selak ke belakang) - Melarikan diri daripada aksara meta atau perkenalkan jujukan khas.
Ungkapan biasa tambahan lain menyokong urutan khas yang mewakili corak biasa, seperti yang diterangkan di bawah.
d - Memadankan sebarang nombor yang bersamaan dengan [0-9].
w - Memadankan mana-mana aksara abjad angka yang bersamaan dengan [a-zA-Z0-9_].
s - sepadan dengan mana-mana aksara ruang putih.
b - Padankan sempadan perkataan.
A - Padan dengan permulaan rentetan yang serupa dengan ^ , tetapi ia tidak mengambil kira corak berbilang garis.
Z - Memadankan hujung rentetan yang serupa dengan $ , tetapi ia tidak mengambil kira corak berbilang baris.
Terdapat pelbagai cara dalam Python untuk menyemak sama ada rentetan sepadan dengan senarai ungkapan biasa (regex). Mari kita lihat setiap kaedah satu demi satu.
Modul "re" dalam Python menyediakan fungsi untuk bekerja dengan ungkapan biasa. Kita boleh menggunakan fungsi 're.match()' daripada modul re untuk menyemak sama ada rentetan sepadan dengan corak regex dan untuk menyemak senarai corak regex, kita boleh mengulang senarai dan untuk setiap corak Call ' re.match()'.
Dalam contoh ini, fungsi re.match() digunakan untuk menyemak sama ada rentetan sepadan dengan setiap corak dalam senarai_regex. Jika padanan ditemui, ia akan mencetak corak.
import re string = "Hello, Welcome to Tutorialspoint!" regex_list = [r"Hello", r"\bWelcome\b", r"\d+"] for pattern in regex_list: if re.match(pattern, string): print(f"String matches pattern: {pattern}")
String matches pattern: Hello
Cara lain untuk mencari corak padanan ialah menggunakan pemahaman senarai dan fungsi re.search(). Dengan menggunakan pemahaman senarai tanpa mengulangi senarai ungkapan biasa, kita boleh membuat senarai baharu yang mengandungi corak padanan.
Dalam contoh ini, kami menggunakan pemahaman senarai dan baris [corak untuk corak dalam regex_list if re.search(pattern, string)] untuk mencipta senarai baharu matching_patterns mengandungi ungkapan biasa dalam regex_list yang sepadan dengan gaya rentetan mod. Kami kemudian menggunakan fungsi re.search() untuk mencari kejadian pertama corak dalam rentetan.
import re string = "Hello,happy learning!" regex_list = [r"Hello", r"\bWelcome\b", r"\d+"] matching_patterns = [pattern for pattern in regex_list if re.search(pattern, string)] print("Matching patterns:", matching_patterns)
Matching patterns: ['Hello']
any() ialah salah satu fungsi yang tersedia dalam Python yang boleh digunakan untuk menyemak sama ada sebarang elemen dalam urutan senarai ungkapan biasa adalah true. Kita boleh menggabungkan ini dengan re.search() untuk menyemak sama ada mana-mana corak regex sepadan dengan rentetan.
Dalam contoh ini, fungsi any() digunakan untuk mengulangi elemen senarai ungkapan biasa dan menggunakan re.search() untuk menyemak sama ada mana-mana corak sepadan dengan rentetan. . Jika padanan ditemui, ia akan mencetak "String padanan sekurang-kurangnya satu corak".
import re string = "Hello, Welcome to Tutorialspoint!" regex_list = [r"Hello", r"\bWelcome\b", r"\d+"] if any(re.search(pattern, string) for pattern in regex_list): print("String matches at least one pattern")
String matches at least one pattern
Atas ialah kandungan terperinci Python - Semak sama ada rentetan sepadan dengan senarai ungkapan biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!