Жадне vs. не жадне співставлення

Regular Expressions in Python

Maria Eugenia Inzaugarat

Data Scientist

Жадне vs. не жадне співставлення

  • Два типи співставлення:

    • Жадне
    • Не жадне (lazy)
  • Стандартні квантори за замовчуванням жадні: *, +, ?, {num, num}

Regular Expressions in Python

Жадне співставлення

  • Жадне: збігає якомога більше символів

  • Повертає найдовший збіг

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

Regular Expressions in Python

Жадне співставлення

  • Відступає, коли збіглося надто багато символів

  • Віддає символи по одному

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

Regular Expressions in Python

Не жадне співставлення

  • Lazy: збігає мінімально потрібну кількість символів
  • Повертає найкоротший збіг
  • Додайте ? до жадних кванторів
import re
re.match(r"\d+?", "12345bcada")
<re.Match object; span=(0, 1), match='1'>

Regular Expressions in Python

Не жадне співставлення

  • Відступає, коли збіглося замало символів

  • Розширює збіг по одному символу

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

Regular Expressions in Python

Давайте потренуємось!

Regular Expressions in Python

Preparing Video For Download...