Синтаксис регулярних виразів (posix)
Синтаксис регулярних виразів (POSIX)
Структура регулярних виразів POSIX чимось нагадує структуру типових математичних виразів - різні елементи (оператори) об'єднуються один з одним і утворюють більш складні вирази. Однак саме сенс об'єднання елементів робить регулярні вирази таким потужним і виразним засобом. Можливості не обмежуються пошуком літерального тексту (наприклад, конкретного слова або числа); ви можете провести пошук рядків з різною сематікой, але схожим синтаксисом - наприклад, всіх тегів HTML у файлі.
Найпростіше регулярний вираз збігається з одним літерально словом - наприклад, вираз g збігається в таких рядках, як g. haggle. bag. Вираз, отримане при об'єднанні кількох літеральних символів, збігається з тими ж правилами - наприклад, послідовність gan збігається в люьой рядку, що містить ці символи (наприклад gan. Organize).
оператор | (Вертикальна риса) перевіряє збіг однієї з кількох альтернатив. Наприклад, регулярний вираз php | zend перевіряє рядок на наявність php або zend.
Квадратні дужки ([]) мають особливий сенс в контролі регулярних виразів - вони означають "будь-який символ з перерахованих в дужках". На відміну від регулярного виразу word. яке збігається в усіх рядках містить літеральний текст word. вираз [word] збігається в будь-якому рядку, що містить символ w. o. r або d. Квадратні дужки грають важливу роль при роботі з регулярними виразами, оскільки в процесі пошуку часто виникає завдання пошуку символів з заданого інтервалу. Нижче перераховані деякі часто використовувані інтервали:Перераховані інтервали демонструють загальний принцип. Наприклад, ви можете скористатися інтервалом [0-3] для позначення будь-якого символу від 0 до 3 або інтервалом [a-d] для позначення будь-якого символу нижнього регістра від a до d.
Інтервали визначаються довільно.
Існує особливий клас службових символів, що позначають кількість повторень окремого символу або конструкції, укладеної в квадратні дужки. ці службові символи (+. * і називаються квантіфікаторамі. Принцип їх дії найпростіше пояснити на прикладах.
Інші службові символи
Службові символи $ і ^ збігаються не з символами, а з певною позиції в рядку. Наприклад, вираз S $ означає рядок, яка завершується символом S. а вираз ^ S - рядок, що починається з символу S.
Іноді потрібно знайти службові символи в рядках замість того, щоб використовувати їх в описаному спеціальному контексті. Для цього службові символи екрануються зворотного рисою (\). Наприклад. Наприклад, для пошуку символу $ треба використовувати вираз \ $.
Стандартні інтервальні вирази (символьні класи)
Для зручності програмування в стилі POSIX були визначені деякі стандартні інтервальні вирази, також званими символьними класами (character classes). Символьний клас визначає один символ з заданого інтервалу - наприклад, букву алфавіту або цифру.