Введення в регулярні вираження в PHP

Введення в регулярні вираження в PHP
За Бернард пе

У Linux і Unix, синтаксис, який зазвичай використовується багатьма програмами для визначення моделей текст відомий як регулярних виразів або в короткій формі – регулярний вираз. Regex це дуже потужний метод для опису моделей і багато програм використовують їх для опису послідовностей символів, відповідних. Пошук програм, таких як 'Grep’ покладаються на регулярні вираження. Основному регулярних виразів є основним у світі Linux. Багато мов сценаріїв, таких як Perl, рубін, PHP…і т.д. був побудований в регулярних виразів, а також. Таким чином, ви можете бачити, вивчення регулярних виразів важливо, тому що вони використовуються багато в багатьох місцях і, ймовірно, тим більше в майбутньому.

Regex може бути страшно спочатку, але якщо ви можете отримати основи, це дійсно не так вже й важко зрозуміти,. У цій статті, Ми будемо дивитися на те, як регулярний вираз приходить до фотографії при написанні PHP-додатків.

Щоб зробити короткий огляд до цих пір, Регулярний вираз являє собою послідовність буквених символів, маски, модифікаторів і якоря.

Буквених символів

Літерні символи є буквами, цифр і спеціальних символів, які відповідають тільки самі. Приклади ABC, 123, ~ @ І т. д. (деякі символи зарезервовані хоча).

– Включення діапазону [м-н] відповідає одному з будь-яких символів, включених в діапазоні від м п.

приклад '[-Z]’ буде відповідати будь буквений символ, який входить в діапазон до Z.

– Діапазон винятку [^ М-н] збігається з одним із будь-який символ, не включені в діапазоні від м п. приклад '[^ 0-9]’ буде відповідати будь-який не цифровий символ.

– Період “.” відповідає будь-якому символу,. Він також відомий як шаблон. Приклад 'a.c’ буде відповідати "АЕС", 'Згідно', 'В @’ тощо.

– Символ ” дозволяють інтерпретації спеціальних символів. Приклад 'a.c’ що відповідає значенню "ас’ тільки. Пам'ятайте, що '.’ є зарезервованим символом для подання шаблону? Тому, щоб відповідати періоду, тобто '.', нам потрібно, щоб позбутися від неї, як так ".’

– Вираз [:alnum:] буде відповідати всім буквено-цифрових символів. Це ярлик [A-Za-z0-9]. Як ви можете бачити, Насправді це не ярлик. Вираз [:alnum:] може бути простіше запам'ятати, для деяких людей.

– Вираз [:альфа:] буде відповідати всім алфавітних символів. Це ярлик [A-Za-Z].

– Вираз [:порожнім:] буде збігатися з пробілу або табуляції.

– Вираз [:цифра:] буде відповідати цифрі. Це ярлик [0-9].

– Вираз [:знизити:] будуть відповідати всі малі літери. Це ярлик [-Z].

– Вираз [:верхній:] будуть відповідати всі великі літери. Це ярлик [-Z].

– Вираз [:точка:] будуть відповідати всі друковані символи, без пропусків і букв і цифр.

– Вираз [:простір:] буде відповідати символ пробілу.

Модифікатори

Модифікатор змінює значення безпосередньо передує зразок символу.

– Зірочка ('*') сірники 0 або більше попереднього терміну. Приклад 'а *’ буде відповідати ”, 'А', 'Аа', "Аааа’ тощо (Зверніть увагу на використання ”. Це просто означає, що вираз збігається ні з чим, а).

– Знак питання ('?") сірники 0 або 1 з попереднього терміну. приклад '?’ буде відповідати ” І '’ тільки.

– Плюс ('+') сірники 1 або більше попереднього терміну. Приклад 'а +’ що відповідає значенню "A ', 'ааааааа’ тощо. Це не буде відповідати ”.

– {м,п.} матчів між т і п входжень попереднього терміну. приклад '{1,3}’ що відповідає значенню "A ', 'аа’ і "ааа’ тільки.

– {п.} матчів рівно п входжень попереднього терміну. приклад '{2}’ що відповідає значенню "аа’ тільки.

Якорі

Якорі створюють контекст для моделі, такі як “На початку слова” або “кінець слова”.

– Щука "^’ знаменує собою початок лінії. Приклад '^ HTTP’ буде відповідати будь-якої нової лінії, яка починається з 'HTTP'.

– Знак долара '$’ знаменує собою кінець рядка. Приклад 'після того, як $’ буде відповідати будь-якому рядку, яка закінчується 'після'. (Змінні в PHP починається з $. Намагайтеся не плутати з його).

Групування

угруповання '( )’ дозволяє застосовувати модифікатори для груп регулярних виразів специфікатори, а не тільки безпосередньо проводитися специфікатор. приклад '( аа | BB )’ буде відповідати або 'аа’ або "ББ’

Досить нудна, пора покласти те, що теорії регулярних виразів в хороше застосування.

PHP реалізації

Є 2 Основними варіантами регулярних виразів, Perl-сумісних регулярних виразів (PCRE) і POSIX-Розширений. PHP пропонує досить багато функцій для реалізації цих 2 типи регулярних виразів. В PHP, найбільш часто використовувані функції PCRE є "preg_match’ і в POSIX-розширених регулярних виразів, 'EREG'. І синтаксис трохи відрізняється, але не менш потужний. Перевага використовувати "preg_match’ або "EREG’ залежить тільки від окремих, хоча Zend припустив, що preg_match трохи швидше. Я вважаю за краще використовувати 'eregi’ просто через мого фону в Linux адміністрації.

Приклад 1: Відповідні США 5 або 9 цифра коди поштові

Поштові індекси США мають такий формат ##### або #####-#### де # це цифра. Якщо ви хочете перевірити поштовий індекс представлені скажімо, від онлайн-форму, Ви повинні будете використовувати регулярні вирази десь в сценарії, щоб перевірити його. Відповідність POSIX-розширених регулярних виразів картина буде:

[[:цифра:]]{5}(-[[:цифра:]]{4})?

Заплуталися? Чекати, Дозвольте мені пояснити, чому. Це регулярний вираз розбивається на 2 частини: [[:цифра:]]{5} і (-[[:цифра:]]{4})?.

Частина перша: '[[:цифра:]]’ означає, що цифра діапазону і {5} означає, що цифра повинна відбутися 5 раз.

Частина друга: кронштейн '( )’ групує '-[[:цифра:]]{4}’ разом і '?’ означає вираз "(-[[:цифра:]]{4})’ може відбуватися або 0 або 1 час.

Для здійснення регулярних виразів в PHP, ми використовуємо наступний код:

$Поштові індекси = 'ххххх-хххх';

$шаблон = '[[:цифра:]]{5}(-[[:цифра:]]{4})?";

якщо (EREG($шаблон,$zipCodes)) {

луна “відповідає знайдено “;

}

ще {

луна “відповідність не знайдено”;

}

Приклад 2: Відповідні дати

Скажімо, ми хочемо перевірити дати, введені користувачем. Якщо ми приймаємо тільки дати, як “YYYY-MM-DD” або “YYYY-М-D”, шаблон регулярного виразу буде

[0-9]{4}(-[0-9]{1,2})+

'+’ За термін (-[0-9]{1,2}) означає, що термін має відбуватися не рідше одного разу. Зверніть увагу, що я можу переписати регулярний вираз, як:

[[:цифра:]]{4}(-[[:цифра:]]{1,2})+

або

[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}

Як ви можете бачити, може бути багато рішень проблеми…

Висновок

Regex може бути важко переварити спочатку, але логіка проста, якщо ви зможете займатися більш. Навчання регулярний вираз так само важливо, як вивчення PHP. Інші приклади можна побачити на веб-developer.sitecritic.net. Бажаю успіху.

Бернард пе великий passioner веб-технологій і один із співзасновників Відгуки Sitecritic.net сайту. Він працює з досвідчених веб-дизайнерів і розробників для більш 5 років, розробки і проектування комерційних і некомерційних веб-сайтів. Під час свого вільного часу, він робить огляди веб-сайт, фрілансер SEO і PHP робота. Відвідайте його блог на Melbourne PHP

Стаття Джерело: HTTP://EzineArticles.com/?Експерт = Bernard_Peh

HTTP://EzineArticles.com/?Введення-To-Regular-Expressions-In-PHP&ID = 222113

Related Images:

автор: Яйце персоналу

Egg= (Технології + Internet +Open Source + Linux ) X (новини + Відгуки + Intelligence)

Написати відповідь

Вашу адресу електронної пошти не буде опублікований. Обов'язкові для заповнення поля виділені *