Corso di Raku / Espressioni regolari e grammatiche / Espressioni regolari / Quantificatori / Exercises / Da due a quattro cifre

Soluzione: Da due a quattro cifre

Ecco una possibile soluzione del compito.

Codice

say 'abc12345' ~~ / \d ** 2..4 /;

🦋 Trova il programma nel file two-to-four-digits.raku.

Output

「1234」

Commenti

  1. \d ** 2..4 riconosce da due a quattro cifre di fila.

  2. La stringa ha cinque cifre disponibili, ma l’intervallo limita la corrispondenza a quattro, quindi lo schema prende 1234 e lascia il 5 finale. Essendo goloso, prende il massimo che l’intervallo permette invece del minimo.

  3. La golosità si applica solo all’interno di una singola corrispondenza: il motore si ferma comunque al primo punto in cui lo schema riesce. Anche se una sequenza di cifre più lunga compare più avanti nella stringa, non viene mai raggiunta:

    say 'abc123def6789012z' ~~ / \d ** 2..4 /;   # 「123」

    Qui viene riconosciuto 123 anche se la sequenza successiva 6789012 avrebbe riempito tutto l’intervallo con 6789. Vince la corrispondenza più a sinistra.

Da due a quattro cifre   |   Una corrispondenza frugale