Beberapa metacharacter lainnya yaitu seperti *+?{ dan }. Metacharacter tersebut menentukan jumlah pengulangan.
Metacharacter * berarti “pengulangan nol atau lebih”. * mencoba mencocokkan sebanyak mungkin pengulangan. Pengulangan yang dimaksud dapat berupa karakter tunggal, sebuah class, atau sebuah kumpulan karakter dalam tanda kurung.
Contoh :
import re
cari = r"hari(libur)*"
if re.match(cari, "hari"):
print("Match 1")
if re.match(cari, "hariliburliburhari"):
print("Match 2")
if re.match(cari, "libur"):
print("Match 3")
if re.match(cari, "hariliburliburliburhari"):
print("Match 4")
if re.match(cari, "hariliburharilibur"):
print("Match 5")
if re.match(cari, "harihari"):
print("Match 6")
=====>
Match 1
Match 2
Match 4
Match 5
Match 6
=====>
Contoh di atas mencocokkan string yang dimulai dengan “hari” dan diikuti dengan nol atau “libur” yang berulang.
Metacharacter + mirip dengan *. Jika * adalah “pengulangan nol atau lebih”, maka + adalah “pengulangan sekali atau lebih”.
import re
cari = r"g+"
if re.match(cari, "g"):
print("Match 1")
if re.match(cari, "gggggggggg"):
print("Match 2")
if re.match(cari, "abc"):
print("Match 3")
if re.match(cari, "abcg"):
print("Match 4")
=====>
Match 1
Match 2
=====>
Serderhananya:
- * mencocokkan 0 kejadian atau lebih
- + mencocokkan 1 kejadian atau lebih
Metacharacter ? berarti pengulangan nol atau satu.
Contoh :
import re
cari = r"ice(-)?cream"
if re.match(cari, "ice-cream"):
print("Match 1")
if re.match(cari, "icecream"):
print("Match 2")
if re.match(cari, "sausages"):
print("Match 3")
if re.match(cari, "ice--ice"):
print("Match 4")
=====>
Match 1
Match 2
=====>
Kurung Kurawal
Kurung kurawal dapat dipakai untuk merepresentasikan jumlah pengulangan di antara dua angka. Regex {x,y} berarti pengulangan sesuatu sebanyak di antara x dan y. Oleh karena itu, {0,1} sama dengan ?.
Jika angka pertama tidak ada, maka berarti 0. Jika angka kedua tidak ada, maka berarti tak terbatas.
import re
cari = r"9{1,3}$"
if re.match(cari, "9"):
print("Match 1")
if re.match(cari, "99"):
print("Match 2")
if re.match(cari, "999"):
print("Match 3")
if re.match(cari, "9999"):
print("Match 4")
=====>
Match 1
Match 2
Match 3
=====>
9{1,3}$ mencocokkan string yang memiliki angka 9 sebanyak 1 s/d 3.
LANJUTKAN BACA MATERI LENGKAP