Ekspresi biasa ialah alat pemadanan teks yang berkuasa yang boleh digunakan dalam bahasa pengaturcaraan atau penyunting teks yang berbeza. Dalam pemprosesan teks, fungsi ungkapan biasa membolehkan kami memadankan dan menapis kandungan teks dengan mudah dan meningkatkan kecekapan pemprosesan teks.
Fungsi ungkapan biasa biasanya mempunyai beberapa aksara meta dan simbol asas, seperti:
- (titik): sepadan dengan mana-mana aksara tunggal; sepadan dengan permulaan baris;
- $ (tanda dolar): sepadan dengan hujung baris;
d: sepadan dengan nombor; - w: padankan huruf atau nombor atau garis bawah;
- s: sepadan dengan aksara ruang putih seperti ruang atau tab.
-
- Berikut ialah beberapa contoh aplikasi praktikal fungsi ekspresi biasa.
- Ekstrak nombor telefon daripada teks
Jika terdapat teks yang mengandungi berbilang nombor telefon, seperti ini:
- Ini milik saya Nombor telefon ialah 123-456-7890, dan nombor telefon yang lain ialah 111-222-3333.
Kita boleh menggunakan fungsi ekspresi biasa untuk mengekstrak nombor telefon ini, kodnya adalah seperti berikut:
import re
text = "这是我的电话号码 123-456-7890,另外一个电话号码是 111-222-3333。"
pattern = r"d{3}-d{3}-d{4}"
phone_numbers = re.findall(pattern, text)
print(phone_numbers)
Salin selepas log masuk
Dalam kod di atas, pustaka ekspresi biasa Python mula-mula diimport. Kemudian teks pembolehubah ditakrifkan dan diberikan kandungan teks yang mengandungi nombor telefon. Seterusnya, corak ungkapan biasa ditakrifkan, d{3}-d{3}-d{4} bermaksud memadankan format nombor telefon dalam bentuk xxx-xxx-xxxx. Akhir sekali, gunakan fungsi re.findall untuk mencari semua nombor telefon yang sepadan dengan corak dan simpan hasil yang sepadan dalam nombor_telefon berubah. Menjalankan kod di atas, hasil output ialah ['123-456-7890', '111-222-3333'].
Tentukan sama ada sekeping teks mematuhi format alamat e-mel
Alamat e-mel biasanya mengandungi format nama pengguna@domain, di mana nama pengguna ialah nama pengguna dan domain ialah nama domain pelayan mel. Berikut ialah contoh untuk menentukan sama ada format alamat e-mel adalah betul:
import re
text = "我的邮箱是john@example.com。"
pattern = r"w+@w+.w+"
if re.search(pattern, text):
print(text + " 是一个有效的邮箱地址。")
else:
print(text + " 不是一个有效的邮箱地址。")
Salin selepas log masuk
- Dalam kod di atas, fungsi carian semula digunakan untuk mencari kandungan teks yang sepadan dengan format alamat e-mel. Corak ungkapan biasa w+@w+.w+ digunakan untuk memadankan alamat e-mel yang memenuhi keperluan format. Jika kandungan teks yang memenuhi kriteria ditemui, kandungan teks yang ditentukan akan dikeluarkan sebagai alamat e-mel yang sah.
Menggunakan fungsi ekspresi biasa boleh meningkatkan kecekapan dan ketepatan pemprosesan teks. Walau bagaimanapun, perlu diingatkan bahawa fungsi ungkapan biasa mungkin dipengaruhi oleh pengekodan teks, tabiat bahasa dan faktor lain, jadi ia perlu dilaraskan dan dioptimumkan mengikut situasi tertentu apabila digunakan. Atas ialah kandungan terperinci Gunakan fungsi ungkapan biasa untuk memadankan teks dengan mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!