Curso de Raku / Expresiones regulares y gramáticas / Expresiones regulares / Emparejar cadenas

El operador de emparejamiento inteligente

El operador que aplica un regex a una cadena es el emparejamiento inteligente ~~:

say 'the cat sat' ~~ /cat/; # 「cat」

Un patrón escrito entre barras es la forma más común, pero hay dos más que significan lo mismo y a veces resultan más claras:

say 'the cat sat' ~~ m/cat/;  # 「cat」
say 'the cat sat' ~~ rx/cat/; # 「cat」

La forma m/.../ recalca que estás emparejando, y resulta cómoda cuando quieres añadir opciones a la coincidencia (conocerás esas opciones, llamadas adverbios, más adelante). La forma rx/.../ construye un valor de regex sin aplicarlo todavía.

Muy a menudo solo te importa si la cadena coincidió, no qué se encontró exactamente. Como una coincidencia lograda es un valor verdadero y una fallida es falsa, puedes usar el resultado directamente en un contexto booleano. La manera más limpia de obtener un True o False simple es la función so:

say so 'the cat sat' ~~ /cat/; # True
say so 'the cat sat' ~~ /dog/; # False

Esto convierte un regex en una condición natural para un if:

if 'the cat sat' ~~ /cat/ {
    say 'found it';   # found it
}

Práctica

Resuelve 1 cuestionario sobre el contenido de este tema.

Emparejar cadenas   |   Quiz — Smartmatch


💪 O ve directamente a los ejercicios de esta sección.