RegEx, atau Ekspresi Reguler, adalah urutan karakter yang membentuk pola pencarian.
RegEx dapat digunakan untuk memeriksa apakah string berisi pola pencarian yang ditentukan.
Modul RegEx
Python memiliki paket bawaan yang disebut re, yang dapat digunakan untuk bekerja dengan Ekspresi Reguler.
Impor modul re:
import re
RegEx dengan Python
Setelah
mengimpor modul re,
kamu dapat mulai
menggunakan ekspresi reguler:
Contoh
Cari string untuk melihat apakah itu dimulai dengan “The” dan diakhiri dengan “Spain”:
import re
txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)
Fungsi RegEx
Modul Re memberikan satu set fungsi yang memungkinkan kita untuk mencari string untuk
pertandingan:
| Function | Description |
| findall | Returns a list containing all matches |
| search | Returns a Match object if there is a match anywhere in the string |
| split | Returns a list where the string has been split at each match |
| sub | Replaces one or many matches with a string |
Meta karakter
Meta karakter adalah karakter dengan makna khusus:
| Character | Description | Example |
| [] | A set of characters | “[a-m]” |
| \ | Signals a special sequence (can also be used to escape special characters) | “\d” |
| . | Any character (except newline character) | “he..o” |
| ^ | Starts with | ^hello” |
| $ | Ends with | “world$” |
| * | Zero or more occurrences | “aix*” |
| + | One or more occurrences | “aix+” |
| {} | Exactly the specified number of Occurrences | “al{2}” |
| | | Either or | “falls|stays” |
| () | Capture and group |
Urutan khusus
Urutan khusus adalah \ yang diikuti oleh salah satu karakter dalam daftar di bawah ini, dan
memiliki arti khusus:
| Character | Description | Example |
| \A | Returns a match if the specified characters are at the beginning of the string | “\AThe” |
| \b | Returns a match where the specified characters are at the beginning or at the end of a word | r”\bain” r”ain\b” |
| \B | Returns a match where the specified characters are present, but NOT at the beginning (or at the end) of a word | r”\Bain” r”ain\B” |
| \d | Returns a match where the string contains digits (numbers from 0-9) | “\d” |
| \D | Returns a match where the string DOES NOT contain digits | “\D” |
| \s | Returns a match where the string contains a white space character | “\s” |
| \S | Returns a match where the string DOES NOT contain a white space Character | “\S” |
| \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” |
| \W | Returns a match where the string DOES NOT contain any word characters | “\W” |
| \Z | Returns a match if the specified characters are at the end of the string | “Spain\Z” |
Set
Satu set adalah serangkaian karakter di dalam sepasang tanda
kurung siku [] dengan makna khusus:
| Set | Description |
| [arn] | Returns a match where one of the specified characters (a, r, or n) are present |
| [a-n] | Returns a match for any lower case character, alphabetically between a and n |
| [^arn] | Returns a match for any character EXCEPT a, r, and n |
| [0123] | Returns a match where any of the specified digits (0, 1, 2, or 3) are present |
| [0-9] | Returns a match for any digit between 0 and 9 |
| [0-5][0-9] | Returns a match for any two-digit numbers from 00 and 59 |
| [a-zA-Z] | Returns a match for any character alphabetically between a and z, lower case OR upper case |
| [+] | In sets, +, *, ., |, (), $,{} has no special meaning, so [+] means: return a match for any + character in the string |
Fungsi find all ()
Fungsi findall() mengembalikan daftar yang berisi
semua pertandingan.
Contoh
Cetak daftar semua kecocokan:
import re
txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
Daftar berisi kecocokan dalam urutan ditemukan.
Jika tidak ada yang cocok, daftar kosong dikembalikan:
Contoh
Kembalikan daftar kosong jika tidak ditemukan kecocokan:
import re
txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)
Fungsi search ()
fungsi
search() pencarian
string untuk pertandingan, dan mengembalikan objek Match jika ada match.
Jika ada lebih dari satu pertandingan, hanya kemunculan pertama pertandingan akan dikembalikan:
Contoh
Cari karakter spasi putih pertama di string:
import re
txt = "The rain in Spain"
x = re.search("\s", txt)
print("The first white-space character is located in position:", x.start())
Jika
tidak ditemukan kecocokan, nilainya 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 perpecahan di setiap pertandingan:
Contoh
Berpisah di setiap karakter spasi putih:
import re
txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)
Kamu dapat mengontrol jumlah
kemunculan dengan menentukan maxsplit parameter:
Contoh
Pisahkan string hanya pada kejadian pertama:
import re
txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)
Sub () Fungsi
Fungsi
sub() menggantikan
match
dengan teks pilihan kamu:
Contoh
Ganti setiap karakter spasi putih dengan angka 9:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)
Kamu dapat mengontrol jumlah
penggantian dengan menentukan count parameter:
Contoh
Ganti 2 kejadian pertama:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)
Mencocokkan Objek
Objek Pencocokan adalah objek yang berisi informasi tentang pencarian dan hasilnya.
Catatan: Jika
tidak ada kecocokan, nilainya None akan
dikembalikan, bukan Objek Pencocokan.
Contoh
Lakukan pencarian yang akan mengembalikan Objek Pencocokan:
import re
txt = "The rain in Spain"
x = re.search("ai", txt)
print(x) #this will print an object
Objek Pencocokan memiliki properti dan metode yang digunakan untuk mengambil informasi tentang pencarian, dan hasilnya:
.span() mengembalikan
tuple yang berisi posisi awal, dan akhir pertandingan.
.string mengembalikan
string yang dilewatkan ke fungsi
.group() mengembalikan
bagian dari string di mana ada kecocokan
Contoh
Cetak posisi (posisi awal dan akhir) dari pertandingan pertama yang terjadi.
Ekspresi reguler mencari kata-kata yang dimulai dengan huruf besar “S”:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())
Contoh
Cetak string yang dilewatkan ke fungsi:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)
Contoh
Cetak bagian string yang ada kecocokan.
Ekspresi reguler mencari kata-kata yang dimulai dengan huruf besar “S”:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())
Catatan: Jika tidak ada kecocokan, nilainya None akan dikembalikan, bukan Objek Pencocokan.