Curso de Raku / Expresiones regulares y gramáticas / Expresiones regulares / Aserciones de contexto
Lookahead
Un lookahead comprueba lo que viene inmediatamente después de la posición actual. Se escribe entre corchetes angulares:
<?before …>— funciona si el texto que sigue coincide (lookahead positivo)<!before …>— funciona si el texto que sigue no coincide (lookahead negativo)
La aserción en sí no empareja ningún carácter; solo comprueba la
posición. Por ejemplo, empareja un número solo cuando le siga la palabra
dollars:
say '100 dollars' ~~ / \d+ <?before ' dollars'> /; # 「100」La coincidencia es solo 100: el texto
dollars se comprobó pero no se incluyó.
Como el lookahead solo afirma lo que sigue, el mismo número coincide o no según la moneda que venga detrás:
say so '100 euro' ~~ / \d+ <?before ' euro'> /; # True
say so '100 dollars' ~~ / \d+ <?before ' euro'> /; # FalseLos dígitos son idénticos en ambas cadenas, pero la aserción acepta
100 solo cuando le sigue euro.
La forma negativa resulta útil para «… pero no cuando le sigue …».
Empareja cat solo cuando no le siga un
dígito:
say so 'cats' ~~ / cat <!before \d> /; # True
say so 'cat5' ~~ / cat <!before \d> /; # FalseEn cat5 el lookahead ve un dígito justo detrás de
cat, así que la aserción negativa falla y falla toda la
coincidencia.
Práctica
Resuelve 1 cuestionario sobre el contenido de este tema.
Navegación del curso
← Aserciones de contexto | Quiz — Lookahead →
💪 O ve directamente a los ejercicios de esta
sección.