Pencocokan greedy vs. non-greedy

Regular Expressions in Python

Maria Eugenia Inzaugarat

Data Scientist

Pencocokan greedy vs. non-greedy

  • Dua jenis metode pencocokan:

    • Greedy
    • Non-greedy (lazy)
  • Kuantifier standar bersifat greedy secara default: *, +, ?, {num, num}

Regular Expressions in Python

Pencocokan greedy

  • Greedy: mencocokkan sebanyak mungkin karakter

  • Mengembalikan kecocokan terpanjang

import re
re.match(r"\d+", "12345bcada")
<re.Match object; span=(0, 5), match='12345'>

Regular Expressions in Python

Pencocokan greedy

  • Backtrack saat terlalu banyak karakter cocok

  • Melepas karakter satu per satu

import re
re.match(r".*hello", "xhelloxxxxxx")
<re.Match object; span=(0, 6), match='xhello'>

Regular Expressions in Python

Pencocokan non-greedy

  • Lazy: mencocokkan sesedikit yang diperlukan
  • Mengembalikan kecocokan terpendek
  • Tambahkan ? ke kuantifier greedy
import re
re.match(r"\d+?", "12345bcada")
<re.Match object; span=(0, 1), match='1'>

Regular Expressions in Python

Pencocokan non-greedy

  • Backtrack saat terlalu sedikit karakter cocok

  • Memperluas karakter satu per satu

import re
re.match(r".*?hello", "xhelloxxxxxx")
<re.Match object; span=(0, 6), match='xhello'>

Regular Expressions in Python

Ayo berlatih!

Regular Expressions in Python

Preparing Video For Download...