Traffine I/O

Bahasa Indonesia

2023-03-10

Regular Expressions dengan modul re di Python

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:

python
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:

python
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:

python
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:

python
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:

python
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:

python
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:

python
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():

python
re.sub(pattern, repl, string, count=0, flags=0)
  • pattern: pola ekspresi reguler yang akan dicari
  • repl: string pengganti
  • string: string yang akan dicari
  • count (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":

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():

python
re.split(pattern, string, maxsplit=0, flags=0)
  • pattern: pola ekspresi reguler untuk digunakan sebagai pembatas
  • string: string untuk dipisahkan
  • maxsplit (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:

python
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():

python
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():

python
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:

python
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:

python
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

https://docs.python.org/3/library/re.html

Ryusei Kakujo

researchgatelinkedingithub

Focusing on data science for mobility

Bench Press 100kg!