Coincidencia codiciosa vs. no codiciosa

Expresiones regulares en Python

Maria Eugenia Inzaugarat

Data Scientist

Coincidencia codiciosa vs. no codiciosa

  • Dos tipos de coincidencia:

    • Codiciosa
    • No codiciosa o lazy
  • Los cuantificadores estándar son codiciosos por defecto: *, +, ?, {num, num}

Expresiones regulares en Python

Coincidencia codiciosa

  • Codiciosa: coincide con el máximo de caracteres posible

  • Devuelve la coincidencia más larga

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

Expresiones regulares en Python

Coincidencia codiciosa

  • Retrocede si coincidió con demasiados caracteres

  • Va cediendo caracteres de uno en uno

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

Expresiones regulares en Python

Coincidencia no codiciosa

  • Lazy: coincide con lo mínimo necesario
  • Devuelve la coincidencia más corta
  • Añade ? a los cuantificadores codiciosos
import re
re.match(r"\d+?", "12345bcada")
<re.Match object; span=(0, 1), match='1'>

Expresiones regulares en Python

Coincidencia no codiciosa

  • Retrocede si coincidió con muy pocos caracteres

  • Expande caracteres de uno en uno

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

Expresiones regulares en Python

¡Vamos a practicar!

Expresiones regulares en Python

Preparing Video For Download...