Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

Python RegEx:re.match(), re.search(), re.findall() dengan Contoh

Apa itu Ekspresi Reguler di Python?

Ekspresi Reguler (RE) dalam bahasa pemrograman adalah string teks khusus yang digunakan untuk menggambarkan pola pencarian. Ini sangat berguna untuk mengekstrak informasi dari teks seperti kode, file, log, spreadsheet, atau bahkan dokumen.

Saat menggunakan ekspresi reguler Python, hal pertama yang harus dikenali adalah bahwa semuanya pada dasarnya adalah karakter, dan kami menulis pola untuk mencocokkan urutan karakter tertentu yang juga disebut string. Ascii atau huruf latin adalah yang ada di keyboard Anda dan Unicode digunakan untuk mencocokkan teks asing. Ini termasuk angka dan tanda baca dan semua karakter khusus seperti $#@!%, dll.

Dalam tutorial Python RegEx ini, kita akan belajar-

Misalnya, ekspresi reguler Python dapat memberi tahu program untuk mencari teks tertentu dari string dan kemudian mencetak hasilnya sesuai dengan itu. Ekspresi dapat mencakup

Ekspresi reguler atau RegEx dalam Python dilambangkan sebagai RE (RE, regex, atau pola regex) diimpor melalui modul re . Python mendukung ekspresi reguler melalui perpustakaan. RegEx di Python mendukung berbagai hal seperti Modifier, Identifier, dan karakter spasi putih .

Identifier Pengubah Karakter spasi putih Diperlukan pelarian
\d=sembarang angka (digit) \d mewakili sebuah digit. Contoh:\d{1,5} ia akan mendeklarasikan digit antara 1,5 seperti 424,444.545 dll. \n =baris baru . + * ? [] $ ^ () {} | \
\D=apa pun kecuali angka (bukan angka) + =cocok dengan 1 atau lebih \s=spasi
\s =spasi
(tab,spasi,baris baru dll.)
? =cocok dengan 0 atau 1 \t =tab
\S=apa pun kecuali spasi * =0 atau lebih \e =melarikan diri
\w =huruf ( Cocokkan karakter alfanumerik, termasuk “_”) $ cocok dengan akhir string \r =kereta kembali
\W =apa pun kecuali huruf ( Mencocokkan karakter non-alfanumerik tidak termasuk “_”) ^ mencocokkan awal string \f=umpan formulir
. =apa pun kecuali huruf (titik) | cocok dengan salah satu atau x/y ——————–
\b =karakter apa pun kecuali baris baru [] =rentang atau “varian” ——————-
\. {x} =jumlah kode sebelumnya ——————–

Sintaks Ekspresi Reguler(RE)

import re

Kita akan memulai tutorial ekspresi dengan latihan sederhana ini dengan menggunakan ekspresi (w+) dan (^).

Contoh w+ dan ^ Ekspresi

Di sini kita akan melihat Contoh RegEx Python tentang bagaimana kita dapat menggunakan ekspresi w+ dan ^ dalam kode kita. Kami membahas fungsi re.findall() dengan Python, nanti dalam tutorial ini tetapi untuk sementara kami hanya fokus pada ekspresi \w+ dan \^.

Misalnya, untuk string “guru99, education is fun” jika kita mengeksekusi kode dengan w+ dan^, maka akan menghasilkan output “guru99”.

import re
xx = "guru99,education is fun"
r1 = re.findall(r"^\w+",xx)
print(r1)

Ingat, jika Anda menghapus +tanda dari w+, output akan berubah, dan itu hanya akan memberikan karakter pertama dari huruf pertama, yaitu, [g]

Contoh ekspresi \s dalam fungsi re.split

Untuk memahami cara kerja RegEx di Python ini, kita mulai dengan Contoh RegEx Python sederhana dari fungsi split. Dalam contoh, kami telah membagi setiap kata menggunakan fungsi "re.split" dan pada saat yang sama kami telah menggunakan ekspresi \s yang memungkinkan untuk mengurai setiap kata dalam string secara terpisah.

Ketika Anda mengeksekusi kode ini, itu akan memberi Anda output ['we', 'are', 'splitting', 'the', 'words'].

Sekarang, mari kita lihat apa yang terjadi jika Anda menghapus “\" dari s. Tidak ada alfabet 's' di output, ini karena kami telah menghapus '\' dari string, dan mengevaluasi "s" sebagai karakter biasa dan dengan demikian membagi kata di mana pun ia menemukan "s" dalam string.

Demikian pula, ada serangkaian ekspresi reguler Python lainnya yang dapat Anda gunakan dalam berbagai cara di Python seperti \d,\D,$,\.,\b, dll.

Ini kode lengkapnya

import re
xx = "guru99,education is fun"
r1 = re.findall(r"^\w+", xx)
print((re.split(r'\s','we are splitting the words')))
print((re.split(r's','split the words')))

Selanjutnya, kita akan melihat jenis metode yang digunakan dengan ekspresi reguler di Python.

Menggunakan metode ekspresi reguler

Paket "re" menyediakan beberapa metode untuk benar-benar melakukan kueri pada string input. Kita akan melihat metode re dengan Python:

Catatan :Berdasarkan ekspresi reguler, Python menawarkan dua operasi primitif yang berbeda. Metode kecocokan memeriksa kecocokan hanya di awal string sementara pencarian memeriksa kecocokan di mana saja dalam string.

re.match()

re.match() fungsi re di Python akan mencari pola ekspresi reguler dan mengembalikan kemunculan pertama. Metode Python RegEx Match memeriksa kecocokan hanya di awal string. Jadi, jika kecocokan ditemukan di baris pertama, ia mengembalikan objek kecocokan. Tetapi jika kecocokan ditemukan di beberapa baris lain, fungsi Python RegEx Match mengembalikan null.

Misalnya, perhatikan kode fungsi Python re.match() berikut. Ungkapan "w+" dan "\W" akan cocok dengan kata-kata yang dimulai dengan huruf 'g' dan setelah itu, apa pun yang tidak dimulai dengan 'g' tidak diidentifikasi. Untuk memeriksa kecocokan setiap elemen dalam daftar atau string, kami menjalankan forloop dalam Contoh Python re.match() ini.

re.search():Menemukan Pola dalam Teks

re.search() fungsi akan mencari pola ekspresi reguler dan mengembalikan kemunculan pertama. Tidak seperti Python re.match(), ia akan memeriksa semua baris string input. Fungsi Python re.search() mengembalikan objek yang cocok saat pola ditemukan dan “null” jika pola tidak ditemukan

Bagaimana cara menggunakan pencarian()?

Untuk menggunakan fungsi search(), Anda perlu mengimpor modul Python re terlebih dahulu dan kemudian mengeksekusi kodenya. Fungsi Python re.search() mengambil "pola" dan "teks" untuk memindai dari string utama kami

Misalnya di sini kita mencari dua string literal "Pengujian perangkat lunak" "guru99", dalam string teks "Pengujian Perangkat Lunak menyenangkan". Untuk "pengujian perangkat lunak" kami menemukan kecocokan sehingga mengembalikan output dari Python re.search() Contoh sebagai "menemukan kecocokan", sedangkan untuk kata "guru99" kami tidak dapat menemukan string sehingga mengembalikan output sebagai "Tidak cocok ”.

re.findall()

findall() modul digunakan untuk mencari "semua" kejadian yang cocok dengan pola yang diberikan. Sebaliknya, modul search() hanya akan mengembalikan kemunculan pertama yang cocok dengan pola yang ditentukan. findall() akan mengulangi semua baris file dan akan mengembalikan semua kecocokan pola yang tidak tumpang tindih dalam satu langkah.

Bagaimana Cara Menggunakan re.findall() dengan Python?

Di sini kami memiliki daftar alamat email, dan kami ingin semua alamat email diambil dari daftar, kami menggunakan metode re.findall() dengan Python. Ini akan menemukan semua alamat email dari daftar.

Berikut adalah kode lengkap untuk Contoh re.findall()

import re

list = ["guru99 get", "guru99 give", "guru Selenium"]
for element in list:
    z = re.match("(g\w+)\W(g\w+)", element)
if z:
    print((z.groups()))
    
patterns = ['software testing', 'guru99']
text = 'software testing is fun?'
for pattern in patterns:
    print('Looking for "%s" in "%s" ->' % (pattern, text), end=' ')
    if re.search(pattern, text):
        print('found a match!')
else:
    print('no match')
abc = '[email protected], [email protected], [email protected]'
emails = re.findall(r'[\w\.-]+@[\w\.-]+', abc)
for email in emails:
    print(email)

Bendera Python

Banyak Metode Regex Python dan fungsi Regex mengambil argumen opsional yang disebut Flags. Bendera ini dapat mengubah arti dari pola Regex Python yang diberikan. Untuk memahaminya, kita akan melihat satu atau dua contoh Bendera ini.

Berbagai flag yang digunakan dalam Python termasuk

Sintaks untuk Bendera Regex Apa fungsi bendera ini
[re.M] Buat awal/akhir mempertimbangkan setiap baris
[re.I] Mengabaikan kasus
[re.S] Buat [ . ]
[re.U] Buat { \w,\W,\b,\B} mengikuti aturan Unicode
[re.L] Buat {\w,\W,\b,\B} mengikuti lokal
[re.X] Izinkan komentar dalam Regex

Contoh Bendera re.M atau Multiline

Dalam multiline karakter pola [^] cocok dengan karakter pertama dari string dan awal setiap baris (mengikuti segera setelah setiap baris baru). Sedangkan ekspresi “w” kecil digunakan untuk menandai spasi dengan karakter. Saat Anda menjalankan kode, variabel pertama "k1" hanya mencetak karakter 'g' untuk kata guru99, sedangkan saat Anda menambahkan flag multiline, ia mengambil karakter pertama dari semua elemen dalam string.

Ini kodenya

import re
xx = """guru99 
careerguru99	
selenium"""
k1 = re.findall(r"^\w", xx)
k2 = re.findall(r"^\w", xx, re.MULTILINE)
print(k1)
print(k2)

Demikian juga, Anda juga dapat menggunakan flag Python lainnya seperti re.U (Unicode), re.L (Follow locale), re.X (Allow Comment), dll.

Contoh Python 2

Kode di atas adalah contoh Python 3, Jika Anda ingin menjalankan Python 2 harap pertimbangkan kode berikut.

# Example of w+ and ^ Expression
import re
xx = "guru99,education is fun"
r1 = re.findall(r"^\w+",xx)
print r1

# Example of \s expression in re.split function
import re
xx = "guru99,education is fun"
r1 = re.findall(r"^\w+", xx)
print (re.split(r'\s','we are splitting the words'))
print (re.split(r's','split the words'))

# Using re.findall for text
import re

list = ["guru99 get", "guru99 give", "guru Selenium"]
for element in list:
    z = re.match("(g\w+)\W(g\w+)", element)
if z:
    print(z.groups())
    
patterns = ['software testing', 'guru99']
text = 'software testing is fun?'
for pattern in patterns:
    print 'Looking for "%s" in "%s" ->' % (pattern, text),
    if re.search(pattern, text):
        print 'found a match!'
else:
    print 'no match'
abc = '[email protected], [email protected], [email protected]'
emails = re.findall(r'[\w\.-]+@[\w\.-]+', abc)
for email in emails:
    print email

# Example of re.M or Multiline Flags
import re
xx = """guru99 
careerguru99	
selenium"""
k1 = re.findall(r"^\w", xx)
k2 = re.findall(r"^\w", xx, re.MULTILINE)
print k1
print k2

Ringkasan

Ekspresi reguler dalam bahasa pemrograman adalah string teks khusus yang digunakan untuk menggambarkan pola pencarian. Ini mencakup angka dan tanda baca dan semua karakter khusus seperti $#@!%, dll. Ekspresi dapat menyertakan literal

Dalam Python, ekspresi reguler dilambangkan sebagai RE (RE, regex, atau pola regex) disematkan melalui modul Python re.


Python

  1. Python String strip() Fungsi dengan CONTOH
  2. Python String count() dengan CONTOH
  3. Format String Python() Jelaskan dengan CONTOH
  4. Panjang string python | len() metode Contoh
  5. Metode Python String find() dengan Contoh
  6. Python round() fungsi dengan CONTOH
  7. Python map() berfungsi dengan CONTOH
  8. Python Timeit() dengan Contoh
  9. Penghitung Python dalam Koleksi dengan Contoh
  10. Daftar Python count() dengan CONTOH