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
Python memiliki paket built-in yang disebut re, yang dapat digunakan untuk bekerja dengan Regular Expressions.
Import modul re:
import re
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")
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 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 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 » |
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() 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() 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() 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() 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 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:
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.