RegEx, atau Regular Expression, adalah urutan karakter yang membentuk pola pencarian.
RegEx dapat digunakan untuk memeriksa apakah sebuah string berisi pola pencarian yang ditentukan.
Section Artikel
Modul RegEx
Python memiliki paket built-in yang disebut re, yang dapat digunakan untuk bekerja dengan Regular Expressions.
Import modul re:
import re
RegEx dengan Python
Setelah mengimpor modul re, kita dapat mulai menggunakan ekspresi reguler.
Contoh:
Telusuri string untuk melihat apakah diawali dengan “The” dan diakhiri dengan “Spain”.
import re #Periksa apakah string dimulai dengan "The" dan diakhiri dengan "Spain": txt = "The rain in Spain" x = re.search("^The.*Spain$", txt) if x: print("Ya! Sesuai") else: print("Tidak sesuai")
Fungsi RegEx
Modul re menawarkan serangkaian fungsi yang memungkinkan kita untuk mencari string yang cocok, seperti dibawah ini:
Fungsi | Deskripsi |
---|---|
findall | Menampilkan daftar yang berisi sesuai |
search | Mengembalikan objek yang sesuai jika ada kecocokan dimanapun dalam string |
split | Mengembalikan daftar di mana string telah dipisahkan di setiap kecocokan |
sub | Mengganti satu atau banyak kecocokan dengan string |
Metakarakter
Metakarakter adalah karakter dengan arti khusus
Character | Deskripsi | Contoh |
---|---|---|
[] | Satu set karakter | “[a-m]” |
\ | Sinyal urutan khusus (juga dapat digunakan untuk escape pada karakter khusus) | “\d” |
. | Karakter apa pun (kecuali karakter baris baru) | “he..o” |
^ | Dimulai dengan | “^hello” |
$ | Diakhiri dengan | “world$” |
* | Nol atau lebih kejadian | “aix*” |
+ | Satu atau lebih kejadian | “aix+” |
{} | Persis jumlah kejadian yang ditentukan | “al{2}” |
| | atau | “falls|stays” |
() | Capture dan group |
Urutan Khusus
Urutan khusus adalah \ diikuti oleh salah satu karakter dalam daftar di bawah ini, dan memiliki arti khusus.
Character | Description | Example | Try it |
---|---|---|---|
\A | Returns a match if the specified characters are at the beginning of the string | “\AThe” | Try it » |
\b | Returns a match where the specified characters are at the beginning or at the end of a word (the “r” in the beginning is making sure that the string is being treated as a “raw string”) | r”\bain” r”ain\b” | Try it » Try it » |
\B | Returns a match where the specified characters are present, but NOT at the beginning (or at the end) of a word (the “r” in the beginning is making sure that the string is being treated as a “raw string”) | r”\Bain” r”ain\B” | Try it » Try it » |
\d | Returns a match where the string contains digits (numbers from 0-9) | “\d” | Try it » |
\D | Returns a match where the string DOES NOT contain digits | “\D” | Try it » |
\s | Returns a match where the string contains a white space character | “\s” | Try it » |
\S | Returns a match where the string DOES NOT contain a white space character | “\S” | Try it » |
\w | Returns a match where the string contains any word characters (characters from a to Z, digits from 0-9, and the underscore _ character) | “\w” | Try it » |
\W | Returns a match where the string DOES NOT contain any word characters | “\W” | Try it » |
\Z | Returns a match if the specified characters are at the end of the string | “Spain\Z” | Try it » |
Sets
A set is a set of characters inside a pair of square brackets []
with a special meaning:
Set | Deskripsi |
---|---|
[arn] | Mengembalikan kecocokan di mana salah satu karakter tertentu ada (a, r, atau n) |
[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 di mana ada digit yang ditentukan (0, 1, 2, atau 3) |
[0-9] | Mengembalikan kecocokan untuk semua digit antara 0 dan 9 |
[0-5][0-9] | Mengembalikan kecocokan untuk nomor 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 [+] artinya: mengembalikan kecocokan untuk karakter + apa pun dalam string |
Fungsi findall()
Fungsi findall() mengembalikan daftar yang berisi semua kecocokan.
Contoh:
Cetak daftar semua kecocokan
import re #Kembalikan daftar yang berisi setiap kemunculan "ai" txt = "The rain in Spain" x = re.findall("ai", txt) print(x)
Daftar berisi kecocokan dalam urutan ditemukannya.
Jika tidak ada kecocokan yang ditemukan, maka akan mengembalikan daftar kosong.
Contoh:
Kembalikan daftar kosong jika tidak ditemukan kecocokan
import re txt = "The rain in Spain" #Periksa apakah "Portugal" ada di string x = re.findall("Portugal", txt) print(x) if (x): print("Ya, ada satu kecocokan!") else: print("Tidak cocok")
Fungsi search()
Fungsi search() mencari string yang cocok, dan mengembalikan objek Match jika ada yang cocok.
Jika ada lebih dari satu kecocokan, hanya kemunculan pertama pertandingan yang akan dikembalikan.
Contoh:
Cari karakter spasi pertama dalam string
import re txt = "The rain in Spain" x = re.search("\s", txt) print("Karakter white-space pertama berada di posisi:", x.start())
Jika tidak ada kecocokan yang ditemukan, nilai None dikembalikan.
Contoh:
Lakukan pencarian yang tidak menghasilkan kecocokan
import re txt = "The rain in Spain" x = re.search("Portugal", txt) print(x)
Fungsi split()
Fungsi split() mengembalikan daftar di mana string telah dipisahkan dari setiap kecocokan.
Contoh:
Pisahkan di setiap karakter spasi
import re # Pisahkan string di setiap karakter spasi: txt = "The rain in Spain" x = re.split("\s", txt) print(x)
Kita dapat mengontrol jumlah kemunculan dengan menentukan parameter maxsplit.
Contoh:
Pisahkan string hanya pada kejadian pertama
import re # Pisahkan string pada karakter white-space pertama: txt = "The rain in Spain" x = re.split("\s", txt, 1) print(x)
Fungsi sub()
Fungsi sub() menggantikan kecocokan dengan teks yang dipilih.
Contoh:
Ganti setiap karakter spasi dengan angka 9
import re #Ganti semua karakter spasi dengan angka "9": txt = "The rain in Spain" x = re.sub("\s", "9", txt) print(x)
Kita dapat mengontrol jumlah penggantian dengan menentukan parameter hitungan.
Contoh:
Ganti 2 kejadian pertama
import re #Ganti dua kemunculan pertama karakter white-space dengan digit 9: txt = "The rain in Spain" x = re.sub("\s", "9", txt, 2) print(x)
Objek Match
Objek Match adalah objek yang berisi informasi tentang pencarian dan hasilnya.
Catatan: Jika tidak ada kecocokan, nilai Tidak Ada yang akan dikembalikan, bukan Objek Match.
Contoh:
Lakukan pencarian yang akan mengembalikan Objek Match
import re # Fungsi search() mengembalikan objek Match: txt = "The rain in Spain" x = re.search("ai", txt) print(x)
Objek Match memiliki properti dan metode yang digunakan untuk mengambil informasi tentang pencarian, dan hasilnya:
- .span() mengembalikan tupel yang berisi posisi awal, dan akhir pertandingan.
- .string mengembalikan string yang diteruskan ke fungsi
- .group() mengembalikan bagian dari string yang ada kecocokannya
Contoh
Cetak posisi (posisi awal dan akhir) dari kejadian kecocokan pertama.
Ekspresi reguler mencari kata apa pun yang dimulai dengan huruf besar “S”
import re #Cari huruf besar "S" karakter di awal kata, dan cetak posisinya: txt = "The rain in Spain" x = re.search(r"\bS\w+", txt) print(x.span())
Contoh:
Cetak string yang diteruskan ke fungsi
import re # Properti string mengembalikan string pencarian: txt = "The rain in Spain" x = re.search(r"\bS\w+", txt) print(x.string)
Contoh
Cetak bagian dari string yang terdapat kecocokan.
Ekspresi reguler mencari kata apa pun yang dimulai dengan huruf besar “S”.
import re #Cari huruf besar "S" karakter di awal kata, dan cetak kata tersebut: txt = "The rain in Spain" x = re.search(r"\bS\w+", txt) print(x.group())
Catatan: Jika tidak ada kecocokan, nilai None yang akan dikembalikan, bukan Objek Match.