Модульні уроки (2/4)
Чергування: `|`
конвеєр | є АБО регулярного виразу: шаблон збігається, якщо один із
альтернативи збіги. Його пріоритет дуже низький: | розділяє все
ліворуч і праворуч до охоплюючої групи або початку візерунка.
Pattern: cane|gatto|criceto
Sample: Ho un cane, un gatto e un criceto.
^^^^ ^^^^^ ^^^^^^^Дужки визначають пріоритет
Без дужок альтернативи охоплюють від початку до кінця шаблону. майже завжди ви хочете обмежити АБО частиною шаблону: загорніть його група.
Pattern Significato (errato vs corretto)
^a|b$ "inizio + a" oppure "b + fine" (probabilmente sbagliato)
^(a|b)$ "inizio + (a oppure b) + fine" (probabilmente giusto)Про типове впорядкування альтернатив: поставте найбільше
конкретні/найдовші спочатку. Двигун намагається зліва направо і зупиняється на
перший, який відповідає: gat|gatto завжди відповідатиме лише gat.
Пріоритет і виокремлення альтернатив
Оператор | має дуже низький пріоритет. Якщо ви пишете ^abc|def$, ви шукаєте «рядок, що починається на abc АБО рядок, що закінчується на def». Щоб знайти «початок рядка, за яким іде abc або def, а потім кінець рядка», ви повинні написати ^(abc|def)$.
Спробуйте
Знайдіть у тексті всі три тварини `cane`, `gatto`, `criceto` (у будь-якому порядку).
Показати підказку
Труба розділяє альтернативи. Використовуйте прапорець g, щоб зловити їх усіх.
Рішення доступне після 3 спроб
Повторна вправа
Знайдіть слова `gennaio` або `febbraio` ТІЛЬКИ як цілі слова (використовуйте `\\b`, щоб уникнути збігів усередині довших слів). Використовуйте дужки, щоб обмежити чергування.
Показати підказку
\\b(gennaio|febbraio)\\b прив'язує вибір до цілих слів.
Рішення доступне після 3 спроб
Додатковий виклик
Знайдіть імена файлів із розширеннями `.jpg`, `.png` або `.gif`.
Показати підказку
Використовуйте трубу всередині групи, щоб чергувати розширення.
Рішення доступне після 3 спроб