Python RegEx

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 (ar, 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 ar, and n
[0123] Returns a match where any of the specified digits (012, 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.