Lecții din modul (2/4)
Alternare: `|`
Pipe | este SAU al expresiei regex: modelul se potrivește dacă unul dintre
alternative potriviri. Precedența sa este foarte scăzută: | separă totul
la stânga și la dreapta până la grupul de încadrare sau începutul modelului.
Pattern: cane|gatto|criceto
Sample: Ho un cane, un gatto e un criceto.
^^^^ ^^^^^ ^^^^^^^Parantezele determină prioritate
Fără paranteze, alternativele se întind de la începutul până la sfârșitul modelului. Aproape întotdeauna doriți să limitați SAU la o porțiune a modelului: înfășurați-l un grup.
Pattern Significato (errato vs corretto)
^a|b$ "inizio + a" oppure "b + fine" (probabilmente sbagliato)
^(a|b)$ "inizio + (a oppure b) + fine" (probabilmente giusto)Despre ordonarea tipică a alternativelor: puneți cel mai mult
specifice/cele mai lungi întâi. Motorul încearcă de la stânga la dreapta și se oprește la
primul care se potrivește: gat|gatto s-ar potrivi întotdeauna numai cu gat.
Prioritatea și izolarea alternativelor
Operatorul | are o prioritate foarte scăzută. Dacă scrieți ^abc|def$, căutați „un șir care începe cu abc SAU un șir care se termină cu def”. Pentru a căuta „începutul șirului urmat de abc sau def, urmat de sfârșitul șirului”, trebuie să scrieți ^(abc|def)$.
Încearcă
Găsiți fiecare apariție a celor trei animale `cane`, `gatto`, `criceto` în text (în orice ordine).
Afișează indiciu
Conducta separă alternative. Folosiți steagul g pentru a le prinde pe toate.
Soluție disponibilă după 3 încercări
Exercițiu de revizuire
Găsiți cuvintele `gennaio` sau `febbraio` NUMAI ca cuvinte întregi (utilizați `\\b` pentru a evita potrivirea în cuvinte mai lungi). Utilizați paranteze pentru a limita alternanța.
Afișează indiciu
\\b(gennaio|febbraio)\\b ancorează alegerea la cuvinte întregi.
Soluție disponibilă după 3 încercări
Provocare suplimentară
Găsiți nume de fișiere care se termină cu extensiile `.jpg`, `.png` sau `.gif`.
Afișează indiciu
Utilizați țeava în interiorul unui grup pentru a alterna între extensii.
Soluție disponibilă după 3 încercări