Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa Python untuk kecekapan pengekodan dan pengekodan

Cara menggunakan ungkapan biasa Python untuk kecekapan pengekodan dan pengekodan

PHPz
PHPzasal
2023-06-22 22:52:391553semak imbas

Pemula sering menghadapi beberapa masalah pemprosesan rentetan semasa menulis kod Python, seperti menghuraikan data daripada halaman web HTML, mengekstrak maklumat khusus daripada fail teks atau memintas bahagian penting daripada teks yang panjang, dsb. tunggu. Pada masa ini, kita boleh menggunakan ungkapan biasa untuk menyelesaikan masalah ini. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk menulis kod dan meningkatkan kecekapan pengekodan.

1. Apakah ungkapan biasa?

Ungkapan biasa ialah kaedah yang digunakan untuk memadankan rentetan. Ia menggunakan simbol dan aksara khas untuk membentuk peraturan, yang menjadikannya sangat mudah untuk menapis dan mencari teks. Modul ungkapan biasa yang biasa digunakan dalam Python ialah modul semula, yang boleh digunakan untuk melaksanakan operasi pemadanan dan penggantian biasa pada rentetan.

2. Sintaks asas ungkapan biasa

Sebelum menggunakan ungkapan biasa, kita perlu menguasai beberapa sintaks asas.

Set aksara: [ ] sepadan dengan mana-mana aksara yang terkandung dalam kurungan segi empat sama.

Metacharacter: . Padan dengan mana-mana aksara kecuali baris baharu.

Bilangan ulangan: * sepadan dengan sifar atau lebih aksara berulang, + sepadan dengan satu atau lebih aksara berulang, ?

Mula dan tamat: ^ sepadan dengan kedudukan permulaan rentetan, $ sepadan dengan kedudukan akhir rentetan.

Antonim: W sepadan dengan mana-mana aksara bukan huruf atau angka, S sepadan dengan mana-mana aksara bukan ruang putih.

Kumpulan: ( ) digunakan untuk mengumpulkan supaya mudah dikendalikan.

3. Amalan ungkapan biasa

Yang berikut menggunakan contoh untuk menggambarkan cara menggunakan ungkapan biasa untuk menulis kod dan kecekapan pengekodan.

Contoh 1: Ekstrak tarikh daripada teks

Dalam fail teks, kita perlu mengekstrak maklumat tarikh, contohnya: 1 Mei 2020, kita boleh menggunakan ungkapan biasa berikut:

import re

string = '2020年5月1日'
pattern = r"d+年d+月d+日"

result = re.findall(pattern, string)

print(result)

Hasil keluaran:

['2020年5月1日']

Contoh 2: Ekstrak pautan daripada halaman HTML

Dalam halaman web HTML, kita perlu mengekstrak semua maklumat pautan, contohnya:

import re
import requests

r = requests.get('http://www.baidu.com')
pattern = re.compile(r'(http|https|ftp)://[^s]+')

result = pattern.findall(r.text)

print(result)

Hasil output:

['http://www.baidu.com/', 'http://home.baidu.com/', 'http://map.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://fanyi.baidu.com/', 'http://news.baidu.com/', 'http://baijiahao.baidu.com/', 'http://xueshu.baidu.com/', 'http://wenku.baidu.com/', 'http://music.baidu.com/', 'http://image.baidu.com/', 'http://v.baidu.com/', 'http://tieba.baidu.com/', 'http://map.baidu.com/', 'http://wenku.baidu.com/', 'http://jingyan.baidu.com/', 'http://tieba.baidu.com/', 'http://zhidao.baidu.com/', 'http://tieba.baidu.com/', 'http://tieba.baidu.com/f?kw=%D6%D0%C9%BD%C1%F4%B2%FA&fr=index', 'http://tieba.baidu.com/f?kw=%B0%D9%B6%AF%B2%FA%D0%ED&fr=index', 'http://tieba.baidu.com/f?kw=%D2%EF%BE%AD%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=Ubuntu&fr=index', 'http://tieba.baidu.com/f?kw=%B0%C2%D7%B0%B5%DA&fr=index', 'http://tieba.baidu.com/f?kw=%B7%D7%CA%D0%CE%C4&fr=index', 'http://music.baidu.com/new', 'http://news.baidu.com/n?cmd=1&class=civilnews&tn=rss', 'http://baijiahao.baidu.com/u?app_id=1589334281367279', 'http://xueshu.baidu.com/s?wd=paperuri%3A%2836d90593d4c8d317f9ef4ef93bf56000%29&filter=sc_long_sign&sc_ks_para=q%3D%E9%A3%9F%E5%93%81%E5%AE%89%E5%85%A8', 'http://wenku.baidu.com/view/13908a38069661ce85006134', 'http://music.baidu.com/top?pst=shouyeTop', 'https://www.baidu.com/duty/', 'http://ir.baidu.com']

Contoh 3: Gantikan koma rentetan dengan noktah

Dalam fail teks, kita perlu menggantikan koma dengan noktah, contohnya:

import re

string = '12,34,56,78'
pattern = r','
replaced_string = re.sub(pattern, '.', string)

print(replaced_string)

Output hasil:

12.34.56.78

Contoh 4: Sahkan sama ada rentetan ialah alamat e-mel

Apabila membangunkan sistem log masuk, kami perlu mengesahkan sama ada alamat e-mel yang dimasukkan oleh pengguna adalah sah, contohnya :

import re

email = 'example@gmail.com'
pattern = r'[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$'

if re.match(pattern, email):
    print('Email address is correct!')
else:
    print('Invalid email address!')

Hasil keluaran:

Email address is correct!

4 Ringkasan

Ekspresi biasa Python memainkan peranan penting dalam pemprosesan teks Menguasai sintaks asas ungkapan biasa, anda boleh Bantu kami melengkapkan pengekodan dan tugas pemprosesan rentetan dengan lebih pantas dan cekap. Dalam pembangunan sebenar, ungkapan biasa boleh digunakan secara fleksibel dalam kombinasi dengan perpustakaan dan fungsi Python lain mengikut keperluan khusus untuk mencapai kecekapan pengekodan dan kualiti kod yang lebih baik.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk kecekapan pengekodan dan pengekodan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn