Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma

Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma

王林
王林asal
2023-06-22 20:01:391036semak imbas

Ekspresi biasa Python ialah alat pemprosesan rentetan berdasarkan padanan corak, yang boleh membantu kami mengekstrak maklumat yang diperlukan daripada teks dengan cepat dan cekap. Dalam struktur data dan algoritma, ungkapan biasa boleh digunakan untuk melaksanakan pemadanan teks, penggantian, pembahagian dan fungsi lain, memberikan sokongan yang lebih berkuasa untuk pengaturcaraan kami.

Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma.

1. Pengetahuan asas ungkapan biasa

Sebelum bermula, mari belajar beberapa pengetahuan asas ungkapan biasa:

  1. Set aksara: gunakan kurungan segi empat sama Menunjukkan bahawa ia sepadan sebarang watak yang terdapat dalam kurungan segi empat sama. Contohnya, [abc] boleh memadankan mana-mana satu daripada tiga aksara a, b dan c.
  2. Metacharacter: digunakan untuk memadankan watak atau set aksara tertentu. Contohnya, . boleh memadankan mana-mana aksara kecuali baris baharu, dan * boleh memadankan sebarang bilangan aksara (termasuk 0).
  3. Pencari: digunakan untuk memadankan kedudukan teks. Sebagai contoh, ^ sepadan dengan permulaan teks dan $ sepadan dengan akhir teks.
  4. Simbol bilangan ulangan: digunakan untuk menentukan bilangan kali elemen sebelumnya perlu dipadankan. Contohnya, + bermaksud memadankan 1 atau lebih elemen sebelumnya, {n, m} bermaksud memadankan n kepada m elemen sebelumnya.

2. Aplikasi ungkapan biasa dalam struktur data

Dalam struktur data, ungkapan biasa boleh digunakan dalam senario berikut:

  1. aksara Padanan rentetan : Cari subrentetan yang sepadan dengan corak dalam rentetan.
  2. Penggantian rentetan: Gantikan subrentetan yang sepadan dengan corak tertentu dalam rentetan dengan rentetan lain.
  3. Pecah rentetan: Pisahkan rentetan mengikut corak tertentu.

3. Contoh: Gunakan ungkapan biasa untuk mencari corak dalam rentetan

Mari lihat contoh khusus di bawah untuk mencari corak yang sepadan dengan subrentetan rentetan.

Andaikan kita mempunyai rentetan s, dan kita perlu mencari semua subrentetan bermula dengan nombor.

Pertama, import modul semula:

import re

Kemudian, kami mentakrifkan corak yang ingin kami cari, berikut adalah rentetan yang bermula dengan nombor, yang boleh diwakili oleh "^d+", di mana ^ mewakili aksara yang sepadan Pada permulaan rentetan, d+ bermaksud memadankan satu atau lebih nombor. Kodnya adalah seperti berikut:

pattern = r'^d+'

Seterusnya, gunakan kaedah re.findall untuk mencari corak padanan subrentetan dalam rentetan s Kodnya adalah seperti berikut:

result = re.findall(pattern, s)

Kaedah re.findall. di sini mengembalikan Senarai padanan yang mengandungi semua subrentetan yang sepadan. Akhirnya, kita boleh mengeluarkan hasil yang ditemui:

print(result)

Kod lengkap adalah seperti berikut:

import re

s = "123abc456def789"

pattern = r'^d+'
result = re.findall(pattern, s)

print(result)

Hasil output ialah:

['123', '456', '789']

4. Contoh: Gunakan ungkapan biasa untuk lakukan pemprosesan rentetan Ganti

Selain mencari subrentetan yang sepadan dengan corak dalam rentetan, ungkapan biasa juga boleh digunakan untuk menggantikan rentetan.

Andaikan kita mempunyai rentetan s, dan kita perlu menggantikan semua ruang di dalamnya dengan garis bawah.

Begitu juga, kita tentukan dahulu corak yang ingin kita cari, iaitu ruang dalam kes ini, diwakili oleh "s+".

Kemudian gunakan kaedah re.sub untuk menggantikan rentetan Kodnya adalah seperti berikut:

import re

s = "Hello world, welcome to Python!"

pattern = r's+'
replace_with = '_'

result = re.sub(pattern, replace_with, s)

print(result)

Hasil output ialah:

Hello_world,_welcome_to_Python!

5. Contoh: Gunakan ungkapan biasa. untuk menggantikan rentetan Pemisahan

Selain padanan dan penggantian rentetan, ungkapan biasa juga boleh digunakan untuk membelah rentetan.

Andaikan kita mempunyai rentetan s, yang mengandungi berbilang ayat, dan kita perlu membahagikannya mengikut noktah.

Begitu juga, kita mula-mula mentakrifkan corak yang ingin kita cari, yang merupakan titik dalam kes ini, diwakili oleh ".".

Kemudian gunakan kaedah re.split untuk membelah rentetan Kodnya adalah seperti berikut:

import re

s = "Hello. My name is John. What is your name?"

pattern = r'.'
result = re.split(pattern, s)

print(result)

Hasil output ialah:

['Hello', ' My name is John', ' What is your name?']

6. Ringkasan

Ekspresi biasa Python ialah alat pemprosesan rentetan yang sangat berkuasa dan digunakan secara meluas dalam struktur data dan algoritma. Menguasai pengetahuan asas ungkapan biasa Python dan mahir menggunakan pelbagai kaedah boleh menjadikan pengaturcaraan kami lebih cekap dan fleksibel.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk struktur data dan algoritma. 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