Sebuah group dapat diberikan sebuah argumen metacharacter seperti * dan ?. Sebagai contoh, (spam) merepresentasikan sebuah group.
import re
cari = r"egg(spam)*"
if re.match(cari, "egg"):
print("Match 1")
if re.match(cari, "eggspamspamspamegg"):
print("Match 2")
if re.match(cari, "spam"):
print("Match 3")
=====>
Match 1
Match 2
=====>
Memanggil group(0) or group() mengembalikan semua kecocokan. Memanggil group(n), dimana n lebih besar daripada 0, mengembalikan group ke-n dari kiri.
Fungsi groups() mengembalikan semua group dari yang ke-1.
import re
cari = r"a(bc)(de)(f(g)h)i"
cocok = re.match(cari, "abcdefghijklmnop")
if cocok:
print(cocok.group())
print(cocok.group(0))
print(cocok.group(1))
print(cocok.group(2))
print(cocok.groups())
=====>
abcdefghi
abcdefghi
bc
de
('bc', 'de', 'fgh', 'g')
=====>
Ada beberapa macam group spesial. Dua di antaranya adalah named groups dan non-capturing groups. Named group memiliki format (?P…), dimana name adalah nama group yang dapat diakses menggunakan group(name) disamping menggunakan nomor.
Non-capturing group memiliki format (?….). Tidak dapat diakses menggunakan method group, jadi dapat ditambahkan ke dalam sebuah regex yang sudah ada tanpa merusak penomoran.
import re
cari = r"(?P<first>abc)(?:def)(ghi)"
cocok = re.match(cari, "abcdefghi")
if cocok:
print(cocok.group("first"))
print(cocok.groups())
=====>
abc
('abc', 'ghi')
=====>
Metacharacter
Metacharacter penting lainnya adalah | yang berarti “or”. Jadi hijau|biru mencocokkan hijau atau biru.
import re
cari = r"ker(a|e)n"
cocok = re.match(cari, "keren")
if cocok:
print("Match 1")
cocok = re.match(cari, "keran")
if cocok:
print("Match 2")
cocok = re.match(cari, "kerin")
if cocok:
print("Match 3")
=====>
Match 1
Match 2
=====>
LANJUTKAN BACA MATERI LENGKAP