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 |
Metakarakter
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 findall []
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.