Python - Semak sama ada rentetan sepadan dengan senarai ungkapan biasa

WBOY
Lepaskan: 2023-09-04 08:49:08
ke hadapan
1643 orang telah melayarinya

Python - 检查字符串是否与正则表达式列表匹配

Ungkapan biasa, juga dikenali sebagai ungkapan biasa, ialah urutan aksara yang membentuk corak carian. Ia adalah salah satu alat yang berkuasa untuk padanan corak dan memanipulasi rentetan. Dalam python kita mempunyai modul yang dipanggil semula yang membantu dalam membentuk ungkapan biasa.

Ekspresi biasacorak terdiri daripada aksara biasa (cth. huruf, nombor) dan aksara khas yang dipanggil metacharacters. Metacharacter mempunyai makna istimewa dan membolehkan kami mentakrifkan corak carian yang kompleks. Berikut ialah beberapa aksara meta yang biasa digunakan dalam ungkapan biasa Python.

  • . (titik) - sepadan dengan mana-mana aksara kecuali baris baharu.

  • ^ (karet)− sepadan dengan permulaan rentetan.

  • $(USD) - Padan dengan hujung rentetan.

  • * (asterisk) - Memadankan sifar atau lebih kejadian corak sebelumnya.

  • + (tanda tambah) - Memadankan satu atau lebih kejadian pola sebelumnya.

  • ? (tanda soal) - Padankan sifar atau satu kejadian bagi pola sebelumnya.

  • [] (kurung segi empat sama) - Mentakrifkan kelas aksara dan memadankan mana-mana aksara tunggal dalam kurungan segi empat sama.

  • () (kurungan) - Corak kumpulan dan tangkap subrentetan yang sepadan.

  • (selak ke belakang) - Melarikan diri daripada aksara meta atau perkenalkan jujukan khas.

Ungkapan biasa tambahan lain menyokong urutan khas yang mewakili corak biasa, seperti yang diterangkan di bawah.

  • d - Memadankan sebarang nombor yang bersamaan dengan [0-9].

  • w - Memadankan mana-mana aksara abjad angka yang bersamaan dengan [a-zA-Z0-9_].

  • s - sepadan dengan mana-mana aksara ruang putih.

  • b - Padankan sempadan perkataan.

  • A - Padan dengan permulaan rentetan yang serupa dengan ^ , tetapi ia tidak mengambil kira corak berbilang garis.

  • Z - Memadankan hujung rentetan yang serupa dengan $ , tetapi ia tidak mengambil kira corak berbilang baris.

Terdapat pelbagai cara dalam Python untuk menyemak sama ada rentetan sepadan dengan senarai ungkapan biasa (regex). Mari kita lihat setiap kaedah satu demi satu.

Gunakan modul semula

Modul "re" dalam Python menyediakan fungsi untuk bekerja dengan ungkapan biasa. Kita boleh menggunakan fungsi 're.match()' daripada modul re untuk menyemak sama ada rentetan sepadan dengan corak regex dan untuk menyemak senarai corak regex, kita boleh mengulang senarai dan untuk setiap corak Call ' re.match()'.

Contoh

Dalam contoh ini, fungsi re.match() digunakan untuk menyemak sama ada rentetan sepadan dengan setiap corak dalam senarai_regex. Jika padanan ditemui, ia akan mencetak corak.

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
for pattern in regex_list:
   if re.match(pattern, string):
      print(f"String matches pattern: {pattern}")
Salin selepas log masuk

Output

String matches pattern: Hello
Salin selepas log masuk

Gunakan pemahaman senarai dan re.search()

Cara lain untuk mencari corak padanan ialah menggunakan pemahaman senarai dan fungsi re.search(). Dengan menggunakan pemahaman senarai tanpa mengulangi senarai ungkapan biasa, kita boleh membuat senarai baharu yang mengandungi corak padanan.

Contoh

Dalam contoh ini, kami menggunakan pemahaman senarai dan baris [corak untuk corak dalam regex_list if re.search(pattern, string)] untuk mencipta senarai baharu matching_patterns mengandungi ungkapan biasa dalam regex_list yang sepadan dengan gaya rentetan mod. Kami kemudian menggunakan fungsi re.search() untuk mencari kejadian pertama corak dalam rentetan.

import re
string = "Hello,happy learning!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
matching_patterns = [pattern for pattern in regex_list if re.search(pattern, string)]
print("Matching patterns:", matching_patterns)
Salin selepas log masuk

Output

Matching patterns: ['Hello']
Salin selepas log masuk

Gunakan mana-mana () fungsi dan re.search()

Fungsi

any() ialah salah satu fungsi yang tersedia dalam Python yang boleh digunakan untuk menyemak sama ada sebarang elemen dalam urutan senarai ungkapan biasa adalah true. Kita boleh menggabungkan ini dengan re.search() untuk menyemak sama ada mana-mana corak regex sepadan dengan rentetan.

Contoh

Dalam contoh ini, fungsi any() digunakan untuk mengulangi elemen senarai ungkapan biasa dan menggunakan re.search() untuk menyemak sama ada mana-mana corak sepadan dengan rentetan. . Jika padanan ditemui, ia akan mencetak "String padanan sekurang-kurangnya satu corak".

import re
string = "Hello, Welcome to Tutorialspoint!"
regex_list = [r"Hello", r"\bWelcome\b", r"\d+"]
if any(re.search(pattern, string) for pattern in regex_list):
   print("String matches at least one pattern")
Salin selepas log masuk

Output

String matches at least one pattern
Salin selepas log masuk

Atas ialah kandungan terperinci Python - Semak sama ada rentetan sepadan dengan senarai ungkapan biasa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
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