Č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
startsWith(), endsWith() a contains() odpovedajú na rozdielne otázky. Príklad vyžaduje cestu pod docs/, príponu Markdown a presný fragment /guide. Tieto kontroly rozlišujú veľkosť písmen a neupravujú oddeľovače ciest.
Prečítajte pripravený príklad
Pravidlo v režime CEL + JSON je:
path.startsWith('docs/') && path.endsWith('.md') && path.contains('/guide')Jeho vstup je:
{
"path": "docs/cel/guide.md"
}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
- Kontrola začiatku je pravdivá.
- Kontrola konca aj obsiahnutého fragmentu je tiež pravdivá.
- Tri logické hodnoty spojené pomocou
&&vrátiatrue.
Vaša úloha
- Spustite príklad.
- Zmeňte
.mdna.txta určte, ktorá kontrola zlyhala. - Zmeňte
guidenaGuidea overte rozlišovanie veľkosti písmen.
Očakávané pozorovanie: Každá zmena spôsobí výsledok false z konkrétneho a vysvetliteľného dôvodu.
Častá chyba
Jasnú kontrolu začiatku alebo konca nenahrádzajte regulárnym výrazom, ak pravidlo skutočne nepotrebuje vzor.
Zobraziť vysvetlenie
Nie. Dokazuje iba výskyt fragmentu niekde v reťazci.
Kontrolná otázka
Dokazuje contains("docs"), že cesta začína v priečinku docs/?
Hlavná myšlienka
Vyberte textovú metódu, ktorá presne pomenúva otázku; jednoduché kontroly sa ľahšie revidujú.
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.