Bagaimana untuk menggunakan ungkapan biasa dalam Python

王林
Lepaskan: 2023-06-10 08:25:00
asal
2962 orang telah melayarinya

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:

  • bermaksud padankan mana-mana aksara tunggal
  • w bermaksud padankan mana-mana huruf tunggal, nombor atau aksara garis bawah
  • . d bermaksud padan mana-mana aksara angka tunggal
  • s bermaksud padan mana-mana satu ruang, tab atau aksara baris baharu
    • bermaksud padankan 0 atau lebih aksara sebelumnya
    • bermaksud memadankan 1 atau lebih daripada aksara sebelumnya
  • bermaksud memadankan 0 atau 1 aksara sebelumnya Aksara
  • [] bermakna mentakrifkan set aksara
  • | bermaksud atau operator
  • () bermaksud mengumpulkan

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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))
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!