Modul re
Modul bawaan re
di Python adalah modul yang menyediakan dukungan untuk regular expression. Regular expression, juga dikenal sebagai regex atau regexp, adalah urutan karakter yang mendefinisikan pola pencarian. Modul re
memungkinkan Anda untuk mencari pola dalam string dan melakukan berbagai operasi pada mereka, seperti pencocokan, penggantian, atau pemisahan.
Modul re
menyediakan berbagai fungsi dan metode untuk bekerja dengan regular expression, termasuk compile()
, search()
, match()
, fullmatch()
, findall()
, finditer()
, sub()
, split()
, escape()
, group()
, dan groups()
. Metode-metode ini memungkinkan Anda melakukan berbagai operasi pada string dan regular expression, seperti mengompilasi regular expression, mencari pola, mengganti substring, memisahkan string, dan lain sebagainya.
Dengan menggunakan modul re
, Anda dapat melakukan tugas-tugas pengolahan teks yang kompleks, seperti mem-parsing file log, memvalidasi input pengguna, dan lain-lain. Regular expression dapat sulit dipelajari dan digunakan secara efektif, tetapi mereka merupakan alat yang sangat kuat untuk bekerja dengan data teks.
Berikut adalah contoh penggunaan modul re untuk mencari pola dalam sebuah string:
import re
text = "The quick brown fox jumps over the lazy dog"
pattern = r"fox"
result = re.search(pattern, text)
if result:
print("Match found:", result.group())
else:
print("No match found.")
Pada contoh ini, kita mengimpor modul re dan mendefinisikan variabel string bernama text. Kita juga mendefinisikan pola regular expression yang cocok dengan kata "fox". Lalu, kita menggunakan metode re.search()
untuk mencari pola dalam variabel text
. Jika pola ditemukan, kita mencetak substring yang cocok dengan menggunakan metode group()
. Jika tidak ditemukan pola, kita mencetak pesan yang menunjukkan bahwa tidak ditemukan cocokan.
Metode
Modul re
di Python menyediakan beberapa metode untuk bekerja dengan regex. Dalam artikel ini, saya akan menjelajahi metode-metode tersebut dan memberikan contoh kode dan keluaran untuk setiap metode.
re.compile()
Metode re.compile()
digunakan untuk mengompilasi pola regex menjadi objek regex yang dapat digunakan untuk pencocokan pola. Berikut ini contohnya:
import re
pattern = re.compile(r'\d+')
result = pattern.findall('There are 123 apples and 456 oranges')
print(result)
['123', '456']
Pada contoh di atas, kita mengompilasi pola regex \d+
menjadi objek regex menggunakan re.compile()
. Kemudian, kita menggunakan metode findall()
dari objek ini untuk mencari semua kemunculan satu atau lebih digit pada string yang diberikan.
re.search()
Metode re.search()
digunakan untuk mencari kemunculan pertama dari pola regex pada sebuah string. Berikut ini contohnya:
import re
result = re.search(r'\d+', 'There are 123 apples and 456 oranges')
print(result.group())
123
Pada contoh di atas, kita menggunakan re.search()
untuk mencari kemunculan pertama satu atau lebih digit pada string yang diberikan. Kemudian, kita menggunakan metode group()
dari objek pencocokan yang dihasilkan untuk mendapatkan string yang cocok.
re.match()
Metode re.match()
mirip dengan re.search()
, tetapi hanya mencari di awal string. Berikut ini contohnya:
import re
result = re.match(r'\d+', '123 apples and 456 oranges')
print(result.group())
123
Pada contoh di atas, kita menggunakan re.match() untuk mencari kemunculan pertama satu atau lebih digit pada awal string yang diberikan.
re.fullmatch()
Metode re.fullmatch()
mirip dengan re.match()
, tetapi mencocokkan seluruh string, bukan hanya awalnya saja. Berikut ini contohnya:
import re
result = re.fullmatch(r'\d+', '123')
print(result.group())
123
Pada contoh di atas, kita menggunakan re.fullmatch()
untuk mencocokkan seluruh string dengan pola regex \d+
.
re.findall()
The re.findall()
method returns a list of all non-overlapping matches of a regex pattern in a string. Here's an example:
import re
result = re.findall(r'\d+', 'There are 123 apples and 456 oranges')
print(result)
['123', '456']
Dalam contoh ini, kita menggunakan re.findall()
untuk menemukan semua kemunculan satu atau lebih digit dalam string yang diberikan.
re.finditer()
Metode re.finditer()
mengembalikan iterator yang menghasilkan objek kecocokan untuk semua kemunculan tidak tumpang tindih dari pola regex dalam sebuah string. Berikut adalah contoh penggunaannya:
import re
for match in re.finditer(r'\d+', 'There are 123 apples and 456 oranges'):
print(match.group())
123
456
Pada contoh ini, kita menggunakan re.finditer()
untuk menemukan semua kemunculan satu atau lebih digit dalam string yang diberikan. Kemudian, kita mengulang melalui iterator yang dihasilkan dan mencetak string yang cocok.
re.sub()
Metode re.sub()
digunakan untuk menggantikan semua kemunculan pola dalam sebuah string dengan string pengganti. Berikut adalah sintaks untuk re.sub()
:
re.sub(pattern, repl, string, count=0, flags=0)
pattern
: pola ekspresi reguler yang akan dicarirepl
: string penggantistring
: string yang akan dicaricount
(opsional): jumlah maksimal kemunculan yang akan diganti (default 0, yang berarti mengganti semua kemunculan)flags
(opsional): tanda reguler ekspresi
Berikut adalah contoh penggunaannya yang mengganti semua kemunculan "world" dalam sebuah string dengan "python":
import re
string = "hello world, welcome to the world of python"
new_string = re.sub("world", "python", string)
print(new_string)
hello python, welcome to the python of python
re.split()
Metode re.split()
digunakan untuk memisahkan sebuah string menjadi sebuah daftar substring menggunakan pola ekspresi reguler sebagai pembatas. Berikut adalah sintaks untuk re.split()
:
re.split(pattern, string, maxsplit=0, flags=0)
pattern
: pola ekspresi reguler untuk digunakan sebagai pembatasstring
: string untuk dipisahkanmaxsplit
(opsional): jumlah maksimum pemisahan yang akan dilakukan (default 0, yang berarti pisahkan semua kejadian)flags
(opsional): bendera ekspresi reguler
Berikut adalah contoh yang memisahkan sebuah string menggunakan pola ekspresi reguler yang cocok dengan satu atau lebih spasi:
import re
string = "hello world of python"
new_list = re.split("\s+", string)
print(new_list)
['hello', 'world', 'of', 'python']
re.escape()
Metode re.escape()
digunakan untuk melarikan karakter khusus dalam sebuah string sehingga karakter tersebut dapat digunakan sebagai karakter literal dalam sebuah pola ekspresi reguler. Berikut adalah sintaks untuk re.escape()
:
re.escape(string)
string
: string yang akan dilakukan pelarikan karakter
Berikut adalah contoh yang menggunakan re.escape()
untuk melarikan karakter khusus dalam sebuah string:
import re
string = "hello (world)"
escaped_string = re.escape(string)
print(escaped_string)
hello\ \(world\)
re.group()
Metode re.group()
digunakan untuk mendapatkan sebuah substring yang cocok untuk grup tertentu dalam sebuah pola ekspresi reguler. Berikut adalah sintaks untuk re.group()
:
re.group([group1, ...])
group1
,group2
, ... (opsional): nomor grup untuk diperoleh
Berikut adalah contoh yang menggunakan re.group()
untuk mendapatkan sebuah substring yang cocok untuk grup tertentu:s re.group()
to retrieve the matched substring for a specific group:
import re
string = "hello world"
pattern = r"(\w+)\s(\w+)"
match = re.search(pattern, string)
print(match.group(1))
hello
re.groups()
Metode re.groups()
mengembalikan tuple yang berisi semua grup yang ditangkap dalam pola ekspresi reguler. Grup didefinisikan menggunakan tanda kurung dalam pola. Metode ini mengembalikan tuple kosong jika tidak ada grup yang cocok.
Berikut contoh penggunaannya:
import re
pattern = r'(\d{3})-(\d{2})-(\d{4})'
string = 'My SSN is 123-45-6789.'
match = re.search(pattern, string)
if match:
groups = match.groups()
print(groups)
('123', '45', '6789')
Pada contoh ini, kita mendefinisikan pola ekspresi reguler yang cocok dengan Nomor Keamanan Sosial (SSN) dalam format xxx-xx-xxxx, di mana x
adalah digit. Kita menggunakan metode re.search()
untuk mencari pola ini pada string yang diberikan. Jika cocok, kita memanggil metode groups()
pada objek pencocokan yang dihasilkan untuk mengekstrak semua grup yang ditangkap dalam pola. Tuple yang dihasilkan berisi tiga grup digit yang membentuk SSN.
Referensi