RegEx Python

RegEx atau ekspresi regula adalah sekumpulan aksara yang digunakan untuk membentuk moden carian.

RegEx boleh digunakan untuk memeriksa sama ada string mengandungi moden carian yang ditetapkan.

RegEx

Python ialah yang menyediakan modul yang dinamakan re Paket bawaan, dapat digunakan untuk mengelola ekspresi reguler。

Impor re Modul:

import re

RegEx di Python

Impor re Modul setelah, kita dapat mulai menggunakan ekspresi reguler:

Contoh

Pencarian string untuk melihat apakah ia dimulai dengan "China" dan berakhir dengan "country":

import re
txt = "China is a great country"
x = re.search("^China.*country$", txt)

Jalankan Contoh

Fungsi RegEx

re Modul menyediakan grup fungsi yang memungkinkan kita untuk mengecek string untuk cocokan:

Fungsi Deskripsi
findall Kembalikan daftar yang mengandung semua item yang cocok
search Jika ada cocok di lokasi apapun string, kembalikan objek Match
split Kembalikan daftar yang dibagi setiap kali cocok
sub Ganti string untuk satu atau lebih item yang cocok

Karakter meta

Karakter meta adalah karakter yang memiliki makna khusus:

Aksara Deskripsi Contoh TIY
[] Sebuah kumpulan karakter "[a-m]" Coba
\ Menandai seri khusus (juga dapat digunakan untuk mengesampingkan karakter khusus) "\d" Coba
. Setiap karakter (kecuali karakter baris kosong) "he..o" Coba
^ Memulai dengan "^hello" Coba
$ Berakhir dengan "world$" Coba
* Kemunculan nol atau lebih "aix*" Coba
+ Kemunculan sekali atau lebih "aix+" Coba
{} Kemunculan yang disyaratkan tepat "al{2}" Coba
| Kedua-duanya "falls|stays" Coba
() Penangkapan dan Penggabungan

Seri khusus

Seri khusus adalah \ berikutan salah satu karakter di tabel di bawah, memiliki makna khusus:

Aksara Deskripsi Contoh TIY
\A Jika aksara yang ditentukan berada di awal string, kembalikan item yang cocok "\AThe" Coba
\b Kembalikan item yang cocok, dimana aksara yang ditentukan berada di awal atau akhir kata r"\bain"
r"ain\b"
Coba
Coba
\B Kembalikan item yang cocok, dimana aksara yang ditentukan ada tetapi bukan di awal (atau akhir) kata r"\Bain"
r"ain\B"
Coba
Coba
\d Kembalikan item yang cocok, dimana string mengandung angka (angka 0-9) "\d" Coba
\D Kembalikan item yang cocok, dimana string tidak mengandung angka "\D" Coba
\s Kembalikan item yang cocok, dimana string mengandung karakter kosong "\s" Coba
\S Kembalikan item yang cocok, dimana string tidak mengandung karakter kosong "\S" Coba
\w Kembalikan item yang cocok, dimana string mengandung setiap aksara kata
(Aksara dari a sampai Z, angka dari 0 sampai 9 dan simbol garis bawah _)
"\w" Coba
\W Kembalikan item yang cocok, dimana string tidak mengandung aksara kata "\W" Coba
\Z Jika aksara yang ditentukan berada di akhir string, kembalikan item yang cocok "Spain\Z" Coba

Kumpulan (Set)

Kumpulan (Set) adalah pasangan tanda kurung yang bertentangan [] Sebuah kumpulan karakter di dalam tanda kurung yang mempunyai makna khusus:

Kumpulan Deskripsi Coba
[arn] Mengembalikan item yang cocok untuk ada karakter yang ditentukan (a, r atau n) salah satunya Coba
[a-n] Mengembalikan item yang cocok untuk huruf kecil antara a dan n Coba
[^arn] Mengembalikan item yang cocok untuk ada karakter yang lain daripada a, r dan n Coba
[0123] Mengembalikan item yang cocok untuk ada nombor yang ditentukan (0, 1, 2 atau 3) Coba
[0-9] Mengembalikan item yang cocok untuk nombor antara 0 dan 9 Coba
[0-5][0-9] Mengembalikan item yang cocok untuk nombor antara 0 hingga 9 Coba
[a-zA-Z] Mengembalikan item yang cocok untuk huruf a dan z, kapital atau kecil Coba
[+] Dalam kumpulan, +, *, ., |, (), $, {} tak ada makna khusus, jadi [+] berarti: mengembalikan item yang cocok setiap karakter + di string Coba

Fungsi findall()

findall() Fungsi mengembalikan senarai yang mengandungi semua item yang cocok.

Contoh

Cetak senarai yang cocok:

import re
str = "China adalah negara yang hebat"
x = re.findall("a", str)
print(x)

Jalankan Contoh

Senarai ini mengandungi item yang cocok dalam urutan yang ditemukan.

Jika tidak ditemukan item yang cocok, mengembalikan senarai kosong:

Contoh

Jika tidak ditemukan yang cocok, mengembalikan senarai kosong:

import re
str = "China adalah negara yang hebat"
x = re.findall("USA", str)
print(x)

Jalankan Contoh

Fungsi search()

search() Fungsi mencari yang cocok di string, jika ada yang cocok mengembalikan objek Match.

Jika ada beberapa yang cocok, hanya mengembalikan yang pertama:

Contoh

Mencari karakter kosong pertama di string:

import re
str = "China adalah negara yang hebat"

print("The first white-space character is located in position:\

Jalankan Contoh

Jika tidak ditemukan yang cocok, nilai yang dikembalikan Tiada:

Contoh

Mencari tanpa mengembalikan yang cocok:

import re
str = "China adalah negara yang hebat"
x = re.search("USA", str)
print(x)

Jalankan Contoh

Fungsi split()

split() Fungsi mengembalikan senarai, di mana string dipecah setiap kali cocok:

Contoh

Memecah setiap karakter kosong:

import re
str = "China adalah negara yang hebat"
x = re.split("\s", str)
print(x)

Jalankan Contoh

Anda dapat menentukan maxsplit Parameter untuk mengawal berapa kali muncul:

Contoh

Hanya memecah string di tempat pertama muncul:

import re
str = "China adalah negara yang hebat"
x = re.split("\s", str, 1)
print(x)

Jalankan Contoh

Fungsi sub()

sub() Fungsi menggantikan yang cocok dengan teks yang dipilih anda:

Contoh

Ganti setiap karakter kosong dengan nombor 9:

import re
str = "China adalah negara yang hebat"
x = re.sub("\s", "9", str)
print(x)

Jalankan Contoh

Anda dapat menentukan count Parameter untuk mengawasi jumlah penggantian:

Contoh

Ganti sebanyak dua kali penemuan pertama:

import re
str = "China adalah negara yang hebat"
x = re.sub("\s", "9", str, 2)
print(x)

Jalankan Contoh

Objek Match

Objek Match adalah objek yang mengandung informasi tentang pencarian dan hasil.

Komentar:Jika tiada penemuan, nilai yang kembali Tiadadahulu daripada Objek Match.

Contoh

Pencarian akan kembali Objek Match:

import re
str = "China adalah negara yang hebat"
x = re.search("a", str)
print(x) # akan mencetak objek

Jalankan Contoh

Objek Match menyediakan atribut dan metode untuk mengambil informasi tentang pencarian dan hasil:

  • span() Tumpukan yang dihasilkan termasuk posisi awal dan akhir penemuan
  • .string Kembali string yang disampaikan ke fungsi
  • group() Kembali bahagian yang disesuaikan dengan penemuan

Contoh

Cetak posisi penemuan pertama (mulai dan akhir).

Cari ekspresi reguler untuk setiap kata yang dimulai dengan huruf besar "C":

import re
str = "China adalah negara yang hebat"
x = re.search(r"\bC\w+", str)
print(x.span())

Jalankan Contoh

Contoh

Cetak string yang disampaikan ke fungsi:

import re
str = "China adalah negara yang hebat"
x = re.search(r"\bC\w+", str)
print(x.string)

Jalankan Contoh

Contoh

Cetak bahagian yang disesuaikan dengan penemuan.

Cari ekspresi reguler untuk setiap kata yang dimulai dengan huruf besar "C":

import re
str = "China adalah negara yang hebat"
x = re.search(r"\bC\w+", str)
print(x.group())

Jalankan Contoh

Komentar:Jika tiada penemuan, nilai yang kembali Tiadadahulu daripada Objek Match.