67. PYTHON (Regex) – Group

python seeklogo.com 11

Bid TIK Polda Kepri

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