Модульні уроки (1/4)
Літеральні шаблони
У регулярному виразі "звичайні" буквено-цифрові символи просто збігаються між собою: write
ciao як шаблон, і механізм шукатиме підрядок ciao всередині
текст. Нічого більш чарівного: сканування зліва направо позиція за позицією.
Pattern: ciao
Sample: Buongiorno, ciao mondo! Ti dico anche ciao.
^^^^ ^^^^Збіг завжди містить дві ключові частини інформації:
- відповідний текст (тут
ciao); - індекс (зсув на основі 0), де він починається у зразку (тут
12та38).
За умовчанням регулярні вирази чутливі до регістру: ciao не відповідає Ciao або
CIAO. Щоб ігнорувати регістр, додайте прапорець i (регістр не враховується).
Як працює двигун
Механізм регулярних виразів перевіряє текст по одному символу за раз. Під час пошуку літерального шаблону ciao спочатку шукається літера c. Знайшовши, він перевіряє, чи є наступний символ i, потім a і, нарешті, o. Якщо будь-який із цих збігів не вдається, механізм повертається до наступної початкової позиції та знову починає шукати c.
Літеральні шаблони та прапор g
Без прапора g (глобальний) механізм зупиняється за першого знайденого збігу та зупиняється. с
g він продовжує та збирає кожен наступний збіг до кінця рядка. У цьому курсі ми будемо
майже завжди вмикайте g: ми хочемо бачити кожний збіг у тексті.
Спробуйте
Знайдіть кожне точне (з урахуванням регістру) слово "ciao" у зразку. Підказка: запам’ятайте прапор `g`.
Показати підказку
Зразок — це саме слово. Великі літери не повинні збігатися: немає позначки i.
Рішення доступне після 3 спроб
Повторна вправа
Знайдіть кожне слово `errore` у тексті, ігноруючи верхній/нижній регістр.
Показати підказку
Те саме слово, що й шаблон, але додайте прапорець i (незалежно від регістру) поруч із g.
Рішення доступне після 3 спроб
Додатковий виклик
Визначте та зберіть усі точні випадки слова `ПОПЕРЕДЖЕННЯ` (великі літери, з урахуванням регістру) у прикладі тексту журналу.
Показати підказку
Шукайте буквальний рядок WARNING, переконавшись, що не активовано позначку i.
Рішення доступне після 3 спроб