Python, sebagai bahasa pengaturcaraan yang popular, menyokong penggunaan ungkapan biasa untuk memproses dan mengendalikan data rentetan. Ungkapan biasa ialah kaedah untuk menerangkan ciri rentetan, yang boleh digunakan untuk memadankan, menapis dan menggantikan kandungan dalam rentetan. Dalam Python, gunakan perpustakaan fungsi yang disediakan oleh modul semula untuk mengendalikan dan memproses ungkapan biasa.
1. Asas ungkapan biasa
Dalam ungkapan biasa, beberapa aksara khas digunakan untuk memadankan corak tertentu dalam rentetan. Ungkapan biasa yang paling mudah ialah aksara biasa, seperti a, b atau c, dsb. Aksara ini hanya sepadan dengan diri mereka sendiri. Selain itu, ungkapan biasa juga menyokong aksara khas berikut:
Kod berikut menunjukkan ungkapan biasa yang paling mudah, yang hanya sepadan dengan huruf a dalam. rentetan:
import re text = "Hello world" pattern = 'a' match = re.findall(pattern, text) print(match)
Kita dapat melihat bahawa hanya senarai kosong dicetak kerana tiada aksara a dalam rentetan. Sekarang, mari lihat cara memadankan perkataan menggunakan ungkapan biasa:
import re text = "Hello world" pattern = r"w+" match = re.findall(pattern, text) print(match)
Kini kita mempunyai senarai dua perkataan. Dalam ungkapan biasa ini, mewakili sempadan perkataan dan
w+
mewakili padanan perkataan yang terdiri daripada satu atau lebih aksara perkataan.
2 Gunakan modul semula untuk memadankan
Dalam Python, anda boleh menggunakan modul semula untuk melaksanakan pelbagai operasi pemadanan rentetan, termasuk:
re.search(pattern, string[, flags])
: Mencari corak padanan kedudukan pertama dan mengembalikan objek yang sepadan. re.match(pattern, string[, flags])
: Padankan corak dari permulaan rentetan dan kembalikan objek yang sepadan jika perlawanan itu berjaya. re.findall(pattern, string[, flags])
: Cari semua subrentetan padanan corak dan kembalikannya sebagai senarai. re.finditer(pattern, string[, flags])
: Cari semua subrentetan padanan corak dan kembalikan iteratornya. re.sub(pattern, repl, string[, count, flags])
: Gantikan semua subrentetan padanan corak dalam rentetan dengan repl. re.split(pattern, string[, maxsplit, flags])
: Pisahkan rentetan mengikut corak ungkapan biasa dan kembalikan hasilnya sebagai senarai. Kod berikut menunjukkan cara menggunakan fungsi search()
dan findall()
daripada modul semula untuk memadankan ungkapan biasa:
import re text = "The quick brown fox jumps over the lazy dog." pattern = r"w{3}" match = re.search(pattern, text) if match: print("Found match:", match.group(0)) else: print("No match found") matches = re.findall(pattern, text) print("Found matches:", matches)
Dalam kod di atas, kami mula-mula menggunakan search()
berfungsi untuk mencari padanan pertama dalam rentetan. Jika ditemui, ia mengembalikan objek MatchObject
, jika tidak ia mengembalikan Tiada. Kami juga menggunakan fungsi findall()
, yang akan mengembalikan senarai semua rentetan yang sepadan.
3. Pengumpulan
Dalam ungkapan biasa, kurungan ()
mewakili pengumpulan. Pengumpulan membantu kami menggabungkan subungkapan dalam ungkapan biasa untuk menjadikannya lebih mudah untuk dipadankan dan mencari rentetan. Kita boleh menggunakan fungsi group()
atau groups()
untuk mengakses subungkapan berkumpulan.
Kod berikut menunjukkan cara menggunakan pengumpulan untuk memadankan alamat IP:
import re ip_address = "192.168.1.1" pattern = r"(d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})" match = re.search(pattern, ip_address) print("IP address:", match.group(0)) print("First octet:", match.group(1)) print("Second octet:", match.group(2)) print("Third octet:", match.group(3)) print("Fourth octet:", match.group(4))
Ungkapan biasa yang kami gunakan (d{1,3}).(d{1,3}).(d{1,3}).(d{1,3})
membahagikan alamat IP kepada empat bahagian. Kami kemudian menggunakan fungsi group()
untuk mengakses setiap bahagian.
4. Gunakan fungsi re.sub() untuk menggantikan
re.sub()
Fungsi ini boleh menggunakan ungkapan biasa untuk memadam, menggantikan atau mengubah suai subrentetan daripada rentetan. Kod di bawah menunjukkan cara menggantikan subrentetan dalam rentetan menggunakan fungsi re.sub():
import re text = "The quick brown fox jumps over the lazy dog." pattern = r"fox" new_text = re.sub(pattern, "cat", text) print(new_text)
Dalam kod di atas, kami menggunakan fungsi re.sub()
untuk menggantikan perkataan "musang" dalam rentetan dengan "kucing" dan cetak rentetan yang diganti. Jika kita ingin mengawal bilangan penggantian yang dinyatakan, cuma tambahkan parameter kiraan pilihan pada fungsi re.sub().
5. Kesimpulan
Ekspresi biasa dalam Python sangat berkuasa dan boleh memadankan pelbagai corak rentetan yang kompleks. Kita boleh menggunakan fungsi dalam modul semula untuk menyelesaikan operasi yang berkaitan dengan ungkapan biasa ialah alat yang sangat berguna apabila ia berkaitan dengan pemprosesan rentetan.
Atas ialah kandungan terperinci Bagaimana untuk menggunakan ungkapan biasa dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!