<Попередній | зміст | Наступна>
POSIX Basic проти Розширені регулярні вирази
Саме тоді, коли ми подумали, що це не може бути більше заплутаним, ми виявили, що POSIX також розділяє реалізації регулярних виразів на два види: основні регулярні вирази (BRE) та розширені регулярні вирази (ERE). Функції, які ми розглянули досі, підтримуються будь-яким додатком, який сумісний із POSIX і реалізує BRE. Наші GREP Програма є однією з таких програм.
Яка різниця між BRE та ERE? Справа в метасимволах. За допомогою BRE розпізнаються такі метасимволи:
^ $ . [ ] *
Усі інші символи вважаються буквальними. У ERE додаються такі метасимволи (і пов’язані з ними функції):
( ) { } ? + |
Однак (і це найцікавіше) символи «(», «)», «{» і «}» розглядаються як метасимволи в BRE if вони екрануються за допомогою зворотної косої риски, тоді як у ERE, якщо перед будь-яким метасимволом стоїть зворотна коса риса, він розглядається як литерал. Будь-які дивацтва, які трапляються, будуть висвітлені в наступних обговореннях.
Оскільки функції, які ми збираємося обговорити далі, є частиною ERE, нам потрібно буде використовувати інші GREP. Традиційно це було виконано с егреп програми, але версія GNU GREP також підтримує розширені регулярні вирази, коли -E використовується опція.
POSIX
Протягом 1980-х років Unix стала дуже популярною комерційною операційною системою, але до 1988 року світ Unix був у сум’ятті. Багато виробників комп'ютерів ліцензували вихідний код Unix у його творців, AT&T, і постачали різні версії операційної системи разом зі своїми системами. Однак, намагаючись створити диференціацію продуктів, кожен виробник додав власні зміни та розширення. Це почало обмежувати сумісність програмного забезпечення. Як завжди з
POSIX Basic проти Розширені регулярні вирази
власних постачальників, кожен намагався зіграти зі своїми клієнтами у виграшну гру «блокування». Цей темний час в історії Unix відомий сьогодні як «балканізації».
Введіть IEEE (Інститут інженерів з електротехніки та електроніки). У середині 1980-х років IEEE почав розробляти набір стандартів, які визначали б, як працюватимуть системи Unix (і Unix-подібні). Ці стандарти, офіційно відомі як IEEE 1003, визначають інтерфейси програмування прикладних програм (API), оболонки та утиліти, які можна знайти у стандартній системі, подібній Unix. Назва «POSIX», що означає Портативний інтерфейс операційної системи (з додаванням «X» в кінці для додаткової яскравості), запропонував Річард Столман (так, Що Річард Столман), і був прийнятий IEEE.