RegEx (Regular Expression) pada Python adalah sebuah module yang digunakan untuk mencocokkan dan memanipulasi teks berdasarkan pola-pola yang ditentukan. Dengan RegEx, Anda dapat melakukan pencarian, pemfilteran, dan penggantian teks dengan cepat dan efisien. Python RegEx memberikan fleksibilitas dalam mengidentifikasi pola-pola tertentu dalam string, sehingga sangat berguna dalam pemrosesan teks, validasi data, dan pemrosesan bahasa alami.
RegEx, atau Ekspresi Reguler, adalah urutan karakter yang membentuk pola pencarian.
RegEx dapat digunakan untuk memeriksa apakah suatu string berisi pola pencarian yang ditentukan.
Module RegEx
Python memiliki paket bawaan bernama re
, yang dapat digunakan untuk bekerja dengan Ekspresi Reguler.
Impor modul re
.
import re
RegEx dengan Python
Setelah mengimpor module re
, Anda dapat mulai menggunakan ekspresi reguler.
Contoh:
import re
#Periksa apakah string dimulai dengan "Hari" dan diakhiri dengan "Bandung":
txt = "Hari hujan di kota Bandung"
x = re.search("^Hari.*Bandung$", txt)
if x:
print("YA! Kami memiliki kecocokan!")
else:
print("TIDAK ada kecocokan")
Output:
YA! Kami memiliki kecocokan!
Fungsi RegEx
Module re
menawarkan serangkaian fungsi yang memungkinkan kita mencari kecocokan string:
1. findall()
Fungsi findall()
mengembalikan list yang berisi semua kecocokan.
Contoh:
import re
#Kembalikan list yang berisi setiap kemunculan "an":
txt = "Hari hujan di kota Bandung"
x = re.findall("an", txt)
print(x)
Output:
['an', 'an']
Jika tidak ditemukan kecocokan, list kosong dikembalikan.
2. search()
Fungsi search()
mencari string untuk kecocokan, dan mengembalikan object Match jika ada kecocokan.
Jika ada lebih dari satu kecocokan, hanya kecocokan pertama yang akan dikembalikan.
Contoh:
import re
txt = "Hari hujan di kota Bandung"
x = re.search("\s", txt)
print("Karakter white-space pertama terletak di posisi:", x.start())
Output:
Karakter white-space pertama terletak di posisi: 4
Jika tidak ada kecocokan yang ditemukan, nilai None
dikembalikan.
3. split()
Fungsi split()
mengembalikan list dari string yang dipisahkan dengan nilai tertentu pada setiap kecocokan.
Contoh:
import re
#Pisahkan string di setiap karakter white-space:
txt = "Hari hujan di kota Bandung"
x = re.split("\s", txt)
print(x)
Output:
['Hari', 'hujan', 'di', 'kota', 'Bandung']
Anda dapat mengontrol jumlah kecocokan dengan menentukan parameter maxsplit
.
Contoh:
import re
#Pisahkan string pada karakter white-space pertama:
txt = "Hari hujan di kota Bandung"
x = re.split("\s", txt, 1)
print(x)
Output:
['Hari', 'hujan di kota Bandung']
4. sub()
Fungsi sub()
menggantikan kecocokan dengan teks pilihan Anda.
Contoh:
import re
#Ganti semua karakter white-space dengan angka "9":
txt = "Hari hujan di kota Bandung"
x = re.sub("\s", "9", txt)
print(x)
Output:
Hari9hujan9di9kota9Bandung
Anda dapat mengontrol jumlah penggantian dengan menentukan parameter count
.
Contoh:
import re
#Ganti dua kemunculan karakter white-space pertama dengan angka 9:
txt = "Hari hujan di kota Bandung"
x = re.sub("\s", "9", txt, 2)
print(x)
Output:
Hari9hujan9di kota Bandung
Metakarakter
Metakarakter adalah karakter dengan arti khusus:
Karakter | Deskripsi | Contoh |
[] | Satu set karakter | “[a-m]” |
\ | Memberi sinyal urutan khusus (juga dapat digunakan untuk melarikan diri dari karakter khusus) | “\d” |
. | Karakter apa pun (kecuali karakter baris baru) | “he..o” |
^ | Dimulai dengan | “^hello” |
$ | Diakhiri dengan | “planet$” |
* | Nol atau lebih kejadian | “he.*o” |
+ | Satu atau lebih kejadian | “he.+o” |
? | Nol atau satu kejadian | “he.?o” |
{} | Persis jumlah kejadian yang ditentukan | “he.{2}o” |
| | Entah atau | “falls|stays” |
() | Capture dan kelompokkan |
Contoh penggunaan metakarakter di atas dapat dilihat di bawah ini.
Contoh:
import re
txt = "Sudah 5 hari hujan di kota Bandung"
#Temukan semua karakter digit:
w = re.findall("\d", txt)
print(w)
#Periksa apakah string berisi "hari" atau "bulan":
x = re.findall("hari|bulan", txt)
print(x)
if x:
print("Ya, setidaknya ada satu yang sama!")
else:
print("Tidak ada yang sama")
#Periksa apakah string dimulai dengan 'Sudah':
z = re.findall("^Sudah", txt)
if z:
print("Ya, string dimulai dengan 'Sudah'")
else:
print("Tidak ada yang sama")
Output:
['5']
['hari']
Ya, setidaknya ada satu yang sama!
Ya, string dimulai dengan 'Sudah'
Set
Set adalah sekumpulan karakter di dalam sepasang tanda kurung siku []
dengan arti khusus:
Set | Description |
[arn] | Mengembalikan kecocokan di mana salah satu karakter yang ditentukan (a, r, atau n) ada |
[a-n] | Mengembalikan kecocokan untuk karakter huruf kecil apa pun, menurut abjad antara a dan n |
[^arn] | Mengembalikan kecocokan untuk karakter apa pun KECUALI a, r, dan n |
[0123] | Mengembalikan kecocokan dengan salah satu digit yang ditentukan (0, 1, 2, atau 3). |
[0-9] | Mengembalikan kecocokan untuk setiap digit antara 0 dan 9 |
[0-5][0-9] | Mengembalikan kecocokan untuk angka dua digit dari 00 dan 59 |
[a-zA-Z] | Mengembalikan kecocokan untuk karakter apa pun menurut abjad antara a dan z, huruf kecil ATAU huruf besar |
[+] | Dalam set, +, *, ., |, (), $,{} tidak memiliki arti khusus, jadi [+] berarti: mengembalikan kecocokan untuk setiap karakter + dalam string |
Match Object
Match object adalah object yang berisi informasi tentang pencarian dan hasilnya.
Catatan: Jika tidak ada kecocokan, nilai None
akan dikembalikan, bukan object yang cocok.
Contoh:
import re
#Fungsi search() mengembalikan objek Match:
txt = "Hari hujan di kota Bandung"
x = re.search("an", txt)
print(x)
Output:
<re.Match object; span=(8, 10), match='an'>
Object match memiliki properti dan fungsi yang digunakan untuk mengambil informasi tentang pencarian, dan hasilnya:
.span()
mengembalikan tuple yang berisi posisi awal dan akhir dari kecocokan.
.string
mengembalikan string yang diteruskan ke fungsi
.group()
mengembalikan bagian dari string di mana ada kecocokan
Contoh:
Cetak posisi (posisi awal dan akhir) dari kemunculan kecocokan pertama.
Ekspresi reguler mencari kata yang dimulai dengan huruf besar “B”
import re
#Cari karakter "B" huruf besar di awal kata, dan cetak posisinya:
txt = "Hari hujan di kota Bandung"
x = re.search(r"\bB\w+", txt)
print(x.span())
Output:
(19, 26)
Contoh:
Cetak string yang diteruskan ke fungsi.
import re
#Properti string mengembalikan string pencarian:
txt = "Hari hujan di kota Bandung"
x = re.search(r"\bB\w+", txt)
print(x.string)
Output:
Hari hujan di kota Bandung
Contoh:
Cetak bagian dari string di mana ada kecocokan.
Ekspresi reguler mencari kata yang dimulai dengan huruf besar “B”
import re
#Cari karakter "B" huruf besar di awal kata, dan cetak kata:
txt = "Hari hujan di kota Bandung"
x = re.search(r"\bB\w+", txt)
print(x.group())
Output:
Bandung
Catatan: Jika tidak ada kecocokan, nilai None
akan dikembalikan, bukan object yang cocok.
Tutorial sebelumnya : Python JSON
Tutorial setelahnya : Python PIP
Semua Tutorial Python : Tutorial Python