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

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

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

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

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

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

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

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

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

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

– Перыяд “.” адпавядае любому знаку,. Ён таксама вядомы як шаблон. Example ‘a.cwill match ‘aec’, ‘acc’, ‘a@a’ і гэтак далей.

– Сімвал ” дазваляюць інтэрпрэтацыі спецыяльных знакаў. Example ‘a.cwill match ‘ac’ толькі. Remember that ‘.’ з'яўляецца зарэзерваваных сімвалам для прадстаўлення пра шаблон? Таму, каб адпавядаць перыяду, ie ‘.’, we need to escape it like so ‘.

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

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

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

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

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

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

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

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

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

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

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

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

– Плюс (‘+’) запалкі 1 або больш папярэдняга тэрміну. Example ‘a+will match ‘a’, ‘aaaaaaa’ і гэтак далей. Гэта не будзе адпавядаць ”.

– {метр,п.} матчаў паміж т і п уваходжанняў папярэдняга тэрміну. Example ‘a{1,3}’ will match ‘a’, ‘aaand ‘aaa’ толькі.

– {п.} матчаў роўна п уваходжанняў папярэдняга тэрміну. Example ‘a{2}’ will match ‘aa’ толькі.

Якары

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

The pike ‘^’ азначае сабой пачатак лініі. Example ‘^httpwill match any new line that starts with ‘http’.

The dollar sign ‘$’ азначае сабой канец радка. Example ‘after$will match any line that ends with ‘after’. (Зменныя ў PHP пачынаецца з $. Імкніцеся не блытаць з яго).

Групоўка

Grouping ‘( )’ дазваляе ўжываць мадыфікатары для груп рэгулярных выразаў спецификаторы, а не толькі непасрэдна вырабляцца спецификатор. Example ‘( аа | BB )’ will match either ‘aaor ‘bb

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

PHP рэалізацыі

Ёсць 2 Асноўнымі варыянтамі рэгулярных выразаў, Perl-сумяшчальных рэгулярных выразаў (PCRE) і POSIX-Пашыраны. PHP прапаноўвае даволі шмат функцый для рэалізацыі гэтых 2 тыпы рэгулярных выразаў. У PHP, the most commonly used PCRE function is ‘preg_match’ і ў POSIX-пашыраных рэгулярных выразаў, ‘ereg’. І сінтаксіс трохі адрозніваецца, але не менш магутны. The preference to use ‘preg_matchor ‘ereg’ залежыць толькі ад асобных, хоць Zend выказаў здагадку, што preg_match трохі хутчэй. I prefer to use ‘eregi’ проста з-за майго фону ў Linux адміністрацыі.

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

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

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

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

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

Частка 2.: The bracket ‘( )’ groups the ‘-[[:лічба:]]{4}’ together and the ‘?’ means the expression ‘(-[[:лічба:]]{4})’ можа адбывацца альбо 0 або 1 час.

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

$zipCodes = ‘xxxxx-xxxx’;

$pattern = ‘[[:лічба:]]{5}(-[[:лічба:]]{4})?";

калі (EREG($мадэль,$zipCodes)) {

рэха “адпавядае знойдзена “;

}

яшчэ {

рэха “адпаведнасць не знойдзена”;

}

Прыклад 2: Адпаведныя даты

Скажам, мы хочам праверыць даты, уведзеныя карыстачом. Калі мы прымаем толькі даты, як “YYYY-MM-DD” або “YYYY-М-D”, шаблон рэгулярнага выразы будзе

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

The ‘+’ За тэрмін (-[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 гадоў, распрацоўкі і праектавання камерцыйных і некамерцыйных вэб-сайтаў. Падчас свайго вольнага часу, ён робіць агляды вэб-сайт, freelance SEO and PHP work. Visit his blog at Melbourne PHP

Крыніца артыкула: http://EzineArticles.com/?expert=Bernard_Peh

http://EzineArticles.com/?Introduction-To-Regular-Expressions-In-PHP&id=222113

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

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

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

Адзінае адрозненне паміж этычным хакерства ў тэставанні пранікнення і аднаго праведзенага рэальнага хакера з'яўляецца тое, што хакерство правялі ў якасці неабходнага кампанента пранікнення

Працэдура пранікнення з'яўляецца. Black Box Testing *