Уводзіны ў рэгулярныя выразы ў PHP

Уводзіны ў рэгулярныя выразы ў PHP
Па Бернард пэ

У Linux і Unix, сінтаксіс, які звычайна выкарыстоўваецца шматлікімі прыкладаннямі для вызначэння мадэляў тэкст вядомы як рэгулярных выразаў або ў кароткай форме – рэгулярнае выраз. Regex гэта вельмі магутны метад для апісання мадэляў і шматлікія праграмы выкарыстоўваюць іх для апісання паслядоўнасцяў знакаў, якія адпавядаюць. Пошукавыя праграмы, такія як "grep’ належаць на рэгулярныя выразы. Асноўным рэгулярных выразаў з'яўляецца асноўным у свеце Linux. Шмат моў сцэнарыяў, такіх як Perl, рубін, PHP…і г.д. быў пабудаваны ў рэгулярных выразаў, а таксама. Такім чынам, вы можаце бачыць, вывучэнне рэгулярных выразаў важна, таму што яны выкарыстоўваюцца шмат у многіх месцах і, верагодна, тым больш у будучыні.

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

Каб зрабіць кароткі агляд да гэтага часу, Рэгулярнае выраз ўяўляе сабой паслядоўнасць літарных знакаў, маскі, мадыфікатараў і якара.

Літарных знакаў

Літарныя сімвалы з'яўляюцца літарамі, лічбаў і адмысловых знакаў, якія адпавядаюць толькі самі. Прыклады ABC, 123, ~ @ І г. д. (некаторыя сімвалы зарэзерваваны хоць).

– Уключэнне дыяпазону [м-н] адпавядае аднаму з любых знакаў, уключаных у дыяпазоне ад м п.

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

– Дыяпазон выключэння [^ М-н] супадае з адным з любой знак, не ўключаныя ў дыяпазоне ад м п. Прыклад '[^ 0-9]’ будзе адпавядаць любы ня лічбавы сімвал.

– Перыяд “.” адпавядае любому знаку,. Ён таксама вядомы як шаблон. Прыклад 'A.C’ будзе адпавядаць "AEC", "ACC", 'A@a’ і гэтак далей.

– Сімвал ” дазваляюць інтэрпрэтацыі спецыяльных знакаў. Прыклад 'A.C’ будзе адпавядаць 'ac’ толькі. Памятайце, што '.’ з'яўляецца зарэзерваваных сімвалам для прадстаўлення пра шаблон? Таму, каб адпавядаць перыяду, гэта значыць '., Мы павінны пазбегнуць гэтага так, як ".’

– Выраз [:локця:] будзе адпавядаць усім літарна-лічбавых знакаў. Гэта цэтлік [A-Za-z0-9]. Як вы можаце бачыць, самай справе гэта не цэтлік. Выраз [:локця:] можа быць прасцей запомніць, для некаторых людзей.

– Выраз [:альфа:] будзе адпавядаць усім алфавітных знакаў. Гэта цэтлік [A-Za-Z].

– Выраз [:пусты:] будзе супадаць з прабелу або табуляцыі.

– Выраз [:лічба:] будзе адпавядаць лічбе. Гэта цэтлік [0-9].

– Выраз [:знізіць:] будуць адпавядаць ўсе малыя літары. Гэта цэтлік [-Z].

– Выраз [:верхні:] будуць адпавядаць ўсе загалоўныя літары. Гэта цэтлік [Ад А да Я].

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

– Выраз [:прастору:] будзе адпавядаць знак прабела.

Мадыфікатары

Мадыфікатар змяняе значэнне непасрэдна папярэдні ўзор знака.

– Зорачка ('*') запалкі 0 або больш папярэдняга тэрміну. Прыклад 'a*’ будзе адпавядаць ”, "А", "Аа", 'Aaaaa’ і гэтак далей (Звярніце ўвагу на выкарыстанне ”. Гэта проста азначае, што выраз супадае ні з чым, а).

– Пытальнік ("?") запалкі 0 або 1 з папярэдняга тэрміну. Прыклад '?’ будзе адпавядаць ” і 'а’ толькі.

– Плюс ('+') запалкі 1 або больш папярэдняга тэрміну. Прыклад "A+’ будзе адпавядаць "a", 'Aaaaaaaa’ і гэтак далей. Гэта не будзе адпавядаць ”.

– {метр,п.} матчаў паміж т і п уваходжанняў папярэдняга тэрміну. Прыклад '{1,3}’ будзе адпавядаць "a", 'Аа’ і "ааа’ толькі.

– {п.} матчаў роўна п уваходжанняў папярэдняга тэрміну. Прыклад '{2}’ будзе адпавядаць 'aa’ толькі.

Якары

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

– Шчупак '^’ азначае сабой пачатак лініі. Прыклад '^http’ будзе адпавядаць любой новай лініі, якая пачынаецца з "HTTP".

– Знак долара "$’ азначае сабой канец радка. Прыклад "пасля $’ будзе адпавядаць любой радку, якая заканчваецца "пасля". (Зменныя ў PHP пачынаецца з $. Імкніцеся не блытаць з яго).

Групоўка

Групоўка '( )’ дазваляе ўжываць мадыфікатары для груп рэгулярных выразаў спецификаторы, а не толькі непасрэдна вырабляцца спецификатор. Прыклад '( аа | BB )’ будзе адпавядаць альбо "аа’ альбо 'bb’

Даволі сумная, пара пакласці тое, што тэорыі рэгулярных выразаў у добрае прымяненне.

PHP рэалізацыі

Ёсць 2 Асноўнымі варыянтамі рэгулярных выразаў, Perl-сумяшчальных рэгулярных выразаў (PCRE) і POSIX-Пашыраны. PHP прапаноўвае даволі шмат функцый для рэалізацыі гэтых 2 тыпы рэгулярных выразаў. У PHP, Часцей за ўсё выкарыстоўваецца функцыя PCRE - "Preg_Match’ і ў POSIX-пашыраных рэгулярных выразаў, "Эрэг". І сінтаксіс трохі адрозніваецца, але не менш магутны. Перавага выкарыстання "pref_match’ 'што’ залежыць толькі ад асобных, хоць Zend выказаў здагадку, што preg_match трохі хутчэй. Я аддаю перавагу выкарыстоўваць "eregi’ проста з-за майго фону ў Linux адміністрацыі.

Прыклад 1: Адпаведныя ЗША 5 або 9 лічба коды паштовыя

Паштовыя індэксы ЗША маюць наступны фармат ##### або #####-#### дзе # гэта лічба. Калі вы жадаеце праверыць паштовы індэкс прадстаўленыя скажам, ад анлайну-форму, Вы павінны будзеце выкарыстоўваць рэгулярныя выразы дзесьці ў сцэнары, каб праверыць яго. Адпаведнасць POSIX-пашыраных рэгулярных выразаў карціна будзе:

[[:лічба:]]{5}(-[[:лічба:]]{4})?

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

Частка 1.: "[[:лічба:]]’ азначае, што лічба дыяпазону і {5} азначае, што лічба павінна адбыцца 5 раз.

Частка 2.: Кранштэйн '( )’ групы "-[[:лічба:]]{4}’ разам і '?’ азначае выраз '(-[[:лічба:]]{4})’ можа адбывацца альбо 0 або 1 час.

Для ажыццяўлення рэгулярных выразаў у PHP, мы выкарыстоўваем наступны код:

$Zipcodes = 'XXXX-xxxx';

$pattern = '[[:лічба:]]{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 -праца. Наведайце яго блог у Мельбурн PHP

Крыніца артыкула: http://EzineArticles.com/?эксперт = bernard_peh

http://EzineArticles.com/?Увядзенне да рэгулярна-экспрэсіі ў PHP&ID = 222113

Звязаныя выявы:

аўтар: Яйка персаналу

Яйка = (Тэхналогія + Інтэрнэт +Адкрыты зыходны код + Linux ) X (навіны + водгукі + Інтэлект)