Dalam Python, ungkapan biasa (regex) menawarkan cara yang berkuasa untuk memadankan dan mengekstrak data daripada rentetan. Satu kes penggunaan biasa ialah untuk mengenal pasti dan mendapatkan semula perkataan atau corak tertentu dalam teks yang lebih besar.
Pertimbangkan rentetan contoh:
someline abc someother line name my_user_name is valid some more lines
Matlamat kami adalah untuk mengekstrak perkataan "nama_pengguna_saya" menggunakan ungkapan biasa.
Langkah pertama ialah mencipta corak regex yang sepadan dengan yang dikehendaki corak. Dalam kes ini, kami ingin memadankan baris yang bermula dengan "nama", diikuti dengan mana-mana rentetan dan berakhir dengan "adalah sah." Kita boleh menggunakan regex berikut:
"name .* is valid"
Di sini, "nama" sepadan dengan perkataan literal "nama," ".*" sepadan dengan mana-mana jujukan aksara (termasuk ruang) dan "adalah sah" sepadan dengan rentetan literal. Kami menyusun corak menggunakan re.compile(), seperti yang ditunjukkan di bawah:
import re s = """ someline abc someother line name my_user_name is valid some more lines """ p = re.compile("name .* is valid")
Sekarang, kami boleh menggunakan corak yang disusun untuk mencari padanan dalam rentetan kami. Kaedah p.match(s) mengembalikan objek yang mewakili padanan pertama yang ditemui.
Setelah kita mempunyai objek padanan, kita boleh mengekstrak teks yang dikehendaki menggunakan kumpulan( ) kaedah. Nombor dalam kurungan menentukan kumpulan tangkapan yang hendak diambil. Dalam kes kami, hanya terdapat satu kumpulan tangkapan, yang dilambangkan dengan kumpulan(1):
match = p.match(s) # finds the first match print(match.group(1)) # prints "my_user_name"
Dengan menggunakan ungkapan biasa dan kaedah kumpulan(), kami boleh mengekstrak perkataan atau corak tertentu dengan cekap daripada yang lebih besar. set data teks.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak perkataan tertentu daripada teks menggunakan ungkapan biasa dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!