66. PYTHON (Regex) – Metacharacter Lanjutan

Belajar Bahasa Python Lengkap

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


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.