CH04-L03 · praktické použitie

Kontrola vzoru regulárnym výrazom

Overíte pevný formát kódu a zistíte, kedy je jednoduchšia textová metóda lepšia.

Všeobecný CELSpustiteľné tuZdokumentované
Čo sa naučím?

Viete použiť matches() na formát a nepliesť si ho s vyhľadávaním obyčajného textu.

Kde si to vyskúšam?

Priamo nižšie v skúšobnom prostredí prehliadača.

Čo mám urobiť?

Spustite oba režimy, porovnajte pôvod ich hodnôt a potom dokončite úlohu.

Vyskúšajte CEL · pilot v prehliadači

Vyskúšajte oba spôsoby zadania hodnôt

Lokálne hodnoty môžete definovať v jednom výraze CEL alebo môžete premenné zadať ako vstup JSON. Všetko sa vykonáva vo vašom prehliadači.

Pilotná podmnožina CEL
Jeden samostatný výraz CELFunkcia cel.bind() priradí hodnote lokálny názov a vráti výsledok posledného výrazu.

cel.bind()cel.bind() je voliteľné oficiálne rozšírenie. Nie je súčasťou jadra jazyka CEL a hostiteľská aplikácia ho nemusí podporovať.

Tip: výraz spustíte aj klávesmi Ctrl/⌘ + Enter.
Výsledok

Aktívny príklad vyhodnotíte tlačidlom Spustiť CEL.

Rozsah pilotu: literály, explicitné konverzie, lokálne premenné vytvorené pomocou cel.bind(), premenné z JSON, zoznamy, mapy, prítomnosť, kolekčné makrá, základné kontroly reťazcov, časové hodnoty, aritmetika, porovnávanie, logika a podmienený operátor.

Č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

  1. SK spĺňa prvú skupinu znakov aj počet.
  2. Znak - je na požadovanom mieste.
  3. 2026 spĺňa požiadavku štyroch číslic, preto je výsledok true.

Vaša úloha

  1. Spustite platný kód.
  2. Zmeňte ho na sk-2026.
  3. Zmeňte ho na SK-26 a 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šírenia cel.bind() použitého v samostatnej záložke.