Cara menggunakan EXPRESIONS pada Python

Kalimat biasa adalah urutan karakter khusus, dapat membantu Anda untuk dengan mudah memeriksa apakah string cocok dengan pola.

Python kembali modul meningkat sejak versi 1.5, pola ekspresi reguler yang menyediakan Perl-gaya.

re modul memungkinkan bahasa Python memiliki semua fitur dari ekspresi reguler.

mengkompilasi fungsi untuk menghasilkan objek ekspresi reguler dari string pola dan parameter bendera opsional. Objek ini memiliki seperangkat metode untuk pencocokan ekspresi reguler dan substitusi.

re modul juga menyediakan metode yang konsisten dengan fitur-fitur ini fungsi yang menggunakan pola string sebagai argumen pertama mereka.

Bagian ini memperkenalkan Python fungsi pemrosesan yang umum ekspresi reguler.


fungsi re.match

re.match mencoba untuk mencocokkan pola dari posisi awal dari string, jika tidak pencocokan posisi awal berhasil, pertandingan () mengembalikan none.

Fungsi sintaks:

re.match(pattern, string, flags=0)

Fungsi parameter:

parameterdeskripsipolaMencocokkan ekspresi regulertalistring untuk mencocokkan.benderaBendera, pencocokan ekspresi reguler digunakan untuk mengontrol, seperti: apakah kasus-sensitif, multi-line pertandingan, dan sebagainya.

Metode pertandingan re.match sukses mengembalikan sebuah objek pertandingan, jika tidak ada.

Kita dapat menggunakan grup (num) atau kelompok () fungsi untuk mendapatkan benda-benda yang cocok sesuai ekspresi.

Pencocokan metode objekdeskripsiKelompok (num = 0)Seluruh pencocokan ekspresi string, kelompok () bisa memasukkan lebih dari satu nomor kelompok, dalam hal ini akan mengembalikan nilai yang sesuai dengan kelompok-kelompok tupel.kelompok ()Ia mengembalikan tuple dari semua kelompok string, dari 1 ke nomor yang terdapat dalam kelompok.

Contoh 1:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配

Jalankan contoh di atas output:

(0, 3)
None

Contoh 2:

#!/usr/bin/python
import re

line = "Cats are smarter than dogs"

matchObj = re.match( r'(.*) are (.*?) .*', line, re.M|re.I)

if matchObj:
   print "matchObj.group() : ", matchObj.group()
   print "matchObj.group(1) : ", matchObj.group(1)
   print "matchObj.group(2) : ", matchObj.group(2)
else:
   print "No match!!"

Hasil dari contoh di atas adalah sebagai berikut:

matchObj.group() :  Cats are smarter than dogs
matchObj.group(1) :  Cats
matchObj.group(2) :  smarter

re.search memindai seluruh string dan mengembalikan pertandingan pertama yang sukses.

Fungsi sintaks:

re.search(pattern, string, flags=0)

Fungsi parameter:

parameterdeskripsipolaMencocokkan ekspresi regulertalistring untuk mencocokkan.benderaBendera, pencocokan ekspresi reguler digunakan untuk mengontrol, seperti: apakah kasus-sensitif, multi-line pertandingan, dan sebagainya.

Metode pertandingan re.search sukses mengembalikan sebuah objek pertandingan, jika tidak ada.

Kita dapat menggunakan grup (num) atau kelompok () fungsi untuk mendapatkan benda-benda yang cocok sesuai ekspresi.

Pencocokan metode objekdeskripsiKelompok (num = 0)Seluruh pencocokan ekspresi string, kelompok () bisa memasukkan lebih dari satu nomor kelompok, dalam hal ini akan mengembalikan nilai yang sesuai dengan kelompok-kelompok tupel.kelompok ()Ia mengembalikan tuple dari semua kelompok string, dari 1 ke nomor yang terdapat dalam kelompok.

Contoh 1:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.search('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.search('com', 'www.w3big.com').span())         # 不在起始位置匹配

Jalankan contoh di atas output:

(0, 3)
(11, 14)

Contoh 2:

#!/usr/bin/python
import re

line = "Cats are smarter than dogs";

searchObj = re.search( r'(.*) are (.*?) .*', line, re.M|re.I)

if searchObj:
   print "searchObj.group() : ", searchObj.group()
   print "searchObj.group(1) : ", searchObj.group(1)
   print "searchObj.group(2) : ", searchObj.group(2)
else:
   print "Nothing found!!"
Hasil dari contoh di atas adalah sebagai berikut:
searchObj.group() :  Cats are smarter than dogs
searchObj.group(1) :  Cats
searchObj.group(2) :  smarter

re.match cocok hanya awal dari string, jika awal string tidak memenuhi ekspresi reguler, pertandingan gagal, fungsi mengembalikan None, dan re.search cocok dengan seluruh string, sampai menemukan kecocokan.

contoh:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配
0Contoh hasil di atas adalah sebagai berikut:
#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配
1

Mencari dan mengganti

Python ulang modul memberikan re.sub untuk pertandingan string pengganti.

sintaks:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配
2

String kembali adalah string dengan pertandingan RE paling kiri tidak akan terulang untuk menggantikan. Jika pola ini tidak ditemukan, karakter akan dikembalikan tidak berubah.

count parameter opsional adalah jumlah maksimum kali pengganti pencocokan pola; count harus bilangan bulat non-negatif. Nilai default adalah 0 berarti mengganti semua kejadian.

contoh:

#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配
3Hasil dari contoh di atas adalah sebagai berikut:
#!/usr/bin/python
# -*- coding: UTF-8 -*- 

import re
print(re.match('www', 'www.w3big.com').span())  # 在起始位置匹配
print(re.match('com', 'www.w3big.com'))         # 不在起始位置匹配
4

Regex pengubah - bendera opsional

Kalimat biasa dapat berisi bendera pengubah opsional untuk mengontrol mode pertandingan. Pengubah ditetapkan sebagai bendera opsional. (|) Untuk menentukan beberapa bendera yang dapat bitwise OR melalui. Sebagai re.I | re.M diatur untuk saya dan M bendera:

pengubahdeskripsire.IJadi pencocokan yang tidak sensitif hurufre.LApakah identifikasi lokalisasi (sadar lokal) pencocokanre.MMulti-garis pencocokan, mempengaruhi ^ dan $re.SSo., Termasuk baris cocok dengan semua karakterre.UMenurut mengatasi Unicode karakter set karakter. Bendera ini mempengaruhi \ w, \ W, \ b, \ B.re.XBendera ini dengan memberikan format yang lebih fleksibel sehingga Anda akan menulis kalimat biasa lebih mudah untuk memahami.

Pola ekspresi reguler

Pola string menggunakan sintaks khusus untuk menunjukkan ekspresi reguler:

Surat dan angka sendiri. Pola ekspresi reguler dari huruf dan angka sesuai dengan string yang sama.

Sebagian besar huruf dan angka akan memiliki arti yang berbeda ketika didahului oleh garis miring terbalik.

Tanda baca lolos hanya ketika pertandingan itu sendiri, atau mereka mewakili arti khusus.

Backslash itu sendiri perlu menggunakan backslash melarikan diri.

Sejak ekspresi reguler biasanya mengandung backslash, sehingga Anda akan lebih baik menggunakan string asli untuk mewakili mereka. elemen skema (seperti r '/ t', setara dengan '// t') cocok dengan karakter khusus yang sesuai.

Tabel berikut mencantumkan unsur-unsur tertentu sintaks pola ekspresi reguler. Jika pola penggunaan Anda sambil memberikan opsional bendera argumen, makna unsur-unsur tertentu dari pola akan berubah.

Apa itu regular expression di Python?

Regex merupakan singkatan dari Regular Expression yang merupakan serangkaian karakter yang mendefinisikan sebuah pola pencarian. Beberapa bidang yang menggunakan metode ini adalah seperti Natural Language Processing (NLP), Text Mining, Data Validation, Finding Pattern, Anomaly Detection dan lainnya.

Modul apa dalam python untuk menjalankan regex?

Regex dalam python dapat diakses menggunakan modul re, dimana itu adalah bagian dari library standar. Setelah kita mendefiniskan regex, fungsi re.match dapat digunakan untuk menentukan apakah cocok dengan awal sebuah string.

Apa itu Regex Pattern?

Jadi intinya: Regex itu adalah sebuah teks dalam bentuk pola untuk pencarian dan banyak dipakai untuk pencocokan, pencarian, dan manipulasi teks.