Čo budete robiť
Pripravený výraz spustíte v cvičisku vyššie, budete meniť vždy jeden vstup a vysvetlíte výsledok. Začnite v režime Iba CEL a potom rovnaké pravidlo zopakujte v režime CEL + JSON.
Ako to funguje
matches() kontroluje text regulárnym výrazom v štýle RE2, ktorý poskytuje implementácia CEL. Znak ^ ukotví začiatok, $ koniec, [A-Z]{2} vyžaduje dve veľké písmená ASCII a [0-9]{4} štyri číslice. Pomlčka medzi nimi je doslovná.
Prečítajte pripravený príklad
Pravidlo v režime CEL + JSON je:
code.matches('^[A-Z]{2}-[0-9]{4}$')Jeho vstup je:
{
"code": "SK-2026"
}Záložka Iba CEL obsahuje hodnoty aj pravidlo v jednom výraze. Povolené rozšírenie cel.bind() udrží každý názov lokálny v jeho poslednom argumente.
Vyhodnotenie krok za krokom
SKspĺňa prvú skupinu znakov aj počet.- Znak
-je na požadovanom mieste. 2026spĺňa požiadavku štyroch číslic, preto je výsledoktrue.
Vaša úloha
- Spustite platný kód.
- Zmeňte ho na
sk-2026. - Zmeňte ho na
SK-26a vysvetlite, ktorá časť vzoru odmietla jednotlivé hodnoty.
Očakávané pozorovanie: Obe upravené hodnoty vrátia false: prvá porušuje veľkosť písmen a druhá počet číslic.
Častá chyba
Regulárny výraz, ktorý neviete vysvetliť, sa ťažko udržiava. Na jednoduchý začiatok, koniec alebo fragment uprednostnite pomenovanú textovú metódu.
Zobraziť vysvetlenie
Vzor by mohol nájsť vhodný fragment v dlhšom reťazci namiesto kontroly celej hodnoty.
Kontrolná otázka
Čo by sa zmenilo po odstránení ukotvenia začiatku a konca?
Hlavná myšlienka
Funkciu matches() používajte na skutočné formáty, pravidlá celej hodnoty ukotvite a vysvetlite každú časť vzoru.
Zdroje
CEL-DEV— oficiálny prehľad CEL.CEL-LANG— oficiálna definícia jazyka CEL.CEL-GO-BIND— oficiálna dokumentácia voliteľného rozšíreniacel.bind()použitého v samostatnej záložke.