Raku kurss / Regulārās izteiksmes un gramatikas / Regulārās izteiksmes / Kvantifikatori / Exercises / No diviem līdz četriem cipariem

Risinājums: No diviem līdz četriem cipariem

Šeit ir iespējams risinājums uzdevumam.

Kods

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

🦋 Atrodiet programmu failā two-to-four-digits.raku.

Izvade

「1234」

Komentāri

  1. \d ** 2..4 piemeklē no diviem līdz četriem cipariem pēc kārtas.

  2. Virknē ir pieejami pieci cipari, taču diapazons sakritību ierobežo līdz četriem, tāpēc raksturs paņem 1234 un atstāj pēdējo 5. Būdams rijīgs, tas paņem visvairāk, cik diapazons ļauj, nevis vismazāk.

  3. Rijība attiecas tikai uz vienu sakritību — dzinējs joprojām apstājas pirmajā vietā, kur raksturs izdodas. Pat ja garāka ciparu virkne parādās vēlāk virknē, tā netiek sasniegta nemaz:

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

    Šeit tiek piemeklēts 123, lai gan vēlākā virtene 6789012 būtu piepildījusi visu diapazonu ar 6789. Uzvar sakritība, kas ir pa kreisi.

Kursa navigācija

No diviem līdz četriem cipariem   |   Taupīga sakritība