Перейти до основного вмісту
Модуль 4 · Урок 2 із 414/32 у курсі~10 min
Модульні уроки (2/4)

Чергування: `|`

конвеєр | є АБО регулярного виразу: шаблон збігається, якщо один із альтернативи збіги. Його пріоритет дуже низький: | розділяє все ліворуч і праворуч до охоплюючої групи або початку візерунка.

Code
Pattern: cane|gatto|criceto
Sample:  Ho un cane, un gatto e un criceto.
               ^^^^     ^^^^^         ^^^^^^^

Дужки визначають пріоритет

Без дужок альтернативи охоплюють від початку до кінця шаблону. майже завжди ви хочете обмежити АБО частиною шаблону: загорніть його група.

Code
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)$.

Спробуйте

вправи#regex.m4.l2.e1
Спроби: 0Завантаження…

Знайдіть у тексті всі три тварини `cane`, `gatto`, `criceto` (у будь-якому порядку).

Завантаження редактора…
Показати підказку

Труба розділяє альтернативи. Використовуйте прапорець g, щоб зловити їх усіх.

Рішення доступне після 3 спроб

Повторна вправа

вправи#regex.m4.l2.e2
Спроби: 0Завантаження…

Знайдіть слова `gennaio` або `febbraio` ТІЛЬКИ як цілі слова (використовуйте `\\b`, щоб уникнути збігів усередині довших слів). Використовуйте дужки, щоб обмежити чергування.

Завантаження редактора…
Показати підказку

\\b(gennaio|febbraio)\\b прив'язує вибір до цілих слів.

Рішення доступне після 3 спроб

Додатковий виклик

вправи#regex.m4.l2.e3
Спроби: 0Завантаження…

Знайдіть імена файлів із розширеннями `.jpg`, `.png` або `.gif`.

Завантаження редактора…
Показати підказку

Використовуйте трубу всередині групи, щоб чергувати розширення.

Рішення доступне після 3 спроб