Ekspresi Reguler Python Dibuat Mudah

Ekspresi reguler (regex) adalah alat canggih yang digunakan untuk mencocokkan dan memanipulasi string berdasarkan pola. Dalam Python, modul re menyediakan dukungan untuk ekspresi reguler, yang memungkinkan Anda melakukan operasi string yang rumit secara efisien. Artikel ini akan memperkenalkan Anda pada dasar-dasar ekspresi reguler dan menunjukkan cara menggunakannya secara efektif dalam Python.

Memulai dengan Modul re

Untuk menggunakan ekspresi reguler di Python, Anda perlu mengimpor modul re. Modul ini menyediakan beberapa fungsi untuk bekerja dengan pola regex:

  • re.match() - Memeriksa kecocokan hanya di awal string.
  • re.search() - Mencari seluruh string untuk kecocokan.
  • re.findall() - Menemukan semua kecocokan dalam string dan mengembalikannya sebagai daftar.
  • re.sub() - Mengganti kecocokan dalam string dengan penggantian yang ditentukan.

Pencocokan Pola Dasar

Ekspresi reguler menggunakan karakter khusus untuk menentukan pola pencarian. Berikut ini beberapa pola dasar:

  • . - Mencocokkan karakter tunggal apa pun kecuali baris baru.
  • \d - Mencocokkan digit apa pun (setara dengan [0-9]).
  • \w - Mencocokkan karakter alfanumerik apa pun (setara dengan [a-zA-Z0-9_]).
  • \s ​​- Mencocokkan karakter spasi apa pun.
  • ^ - Mencocokkan awal string.
  • $ - Mencocokkan akhir string.

Contoh

Berikut adalah beberapa contoh yang menunjukkan pencocokan pola dasar:

import re

# Match a pattern at the beginning of a string
result = re.match(r'Hello', 'Hello, World!')
print(result.group())  # Output: Hello

# Search for a pattern in the entire string
result = re.search(r'\d+', 'There are 24 hours in a day.')
print(result.group())  # Output: 24

Menggunakan Ekspresi Reguler dengan Grup

Grup digunakan untuk mengambil bagian teks yang cocok. Grup didefinisikan menggunakan tanda kurung. Misalnya, untuk mengambil bagian tertentu dari suatu pola, Anda dapat menggunakan grup:

pattern = r'(\d{3})-(\d{2})-(\d{4})'
text = 'My number is 123-45-6789.'

# Find all matches with groups
match = re.search(pattern, text)
if match:
    print(f'Area Code: {match.group(1)}')  # Output: 123
    print(f'Prefix: {match.group(2)}')     # Output: 45
    print(f'Suffix: {match.group(3)}')     # Output: 6789

Menggunakan Karakter Khusus

Ekspresi reguler mencakup beberapa karakter khusus untuk pencocokan pola yang lebih kompleks:

  • * - Mencocokkan 0 atau lebih kemunculan elemen sebelumnya.
  • + - Mencocokkan 1 atau lebih kemunculan elemen sebelumnya.
  • ? - Mencocokkan 0 atau 1 kemunculan elemen sebelumnya.
  • {n} - Mencocokkan secara tepat kemunculan n elemen sebelumnya.
  • | - Mencocokkan pola sebelum atau pola sesudahnya.

Contoh

Berikut adalah beberapa contoh penggunaan karakter khusus:

# Match a pattern with 0 or more occurrences
result = re.findall(r'\d*', '123 abc 456')
print(result)  # Output: ['123', '', '', '456']

# Match a pattern with 1 or more occurrences
result = re.findall(r'\d+', 'There are 24 apples and 3 oranges.')
print(result)  # Output: ['24', '3']

Mengganti Teks dengan Ekspresi Reguler

Fungsi re.sub() digunakan untuk mengganti bagian string yang cocok dengan pola:

text = 'The rain in Spain falls mainly in the plain.'

# Replace 'Spain' with 'France'
new_text = re.sub(r'Spain', 'France', text)
print(new_text)  # Output: The rain in France falls mainly in the plain.

Kesimpulan

Ekspresi reguler merupakan alat yang ampuh untuk pencocokan pola dan manipulasi teks dalam Python. Dengan modul re, Anda dapat mencari, mencocokkan, dan mengganti teks berdasarkan pola yang rumit. Dengan memahami sintaks dasar dan karakter khusus, Anda dapat memanfaatkan ekspresi reguler untuk menangani berbagai tugas pemrosesan teks secara efektif.