КомпјутериПрограмирање

PHP (назив) - што е тоа? Примери и проверка на регуларни изрази

Кога се работи со текст во било која модерна јазик за програмирање, програмерите постојано се сретне со целите на влез валидација за почитување на саканиот модел, пребарување и да ја замени тест фрагменти и други видови на операциите на обработка на информации карактер. Да ја развивате вашата сопствени алгоритми валидација води кон губење на време, код компатибилност и комплексноста во својот развој и модернизација.

Брзиот развој на јазиците Интернет и веб-дизајн наложуваше создавање на разновиден и компактен начин за обработка на текст со потребните за овој код минимален износ. Тоа не е исклучок и е популарен меѓу почетници и за професионални развивачи на PHP јазикот. на регуларниот израз јазик како текстот Шаблони за да се поедностави задачата на справување со текст и да се намали код за десетици и стотици линии. Многу проблеми не може да се реши на сите без него.

Регуларни изрази во PHP

PHP јазик има три механизми за работа со регуларни изрази - «ereg», «mb_ereg» и «preg». Од најчестите е интерфејс «preg», чии функции се обезбеди пристап до библиотека на регуларниот израз поддршка на PCRE, првично развиени за јазикот Perl, која е вклучена во пакетот за PHP. Preg-бараат функции во даден текст стринг појавување, според одредена шема на јазикот на регуларни изрази.

синтакса основите

Како дел од краток напис не е возможно да се опише во детали на целиот синтаксата на регуларните изрази, за тоа постои посебен литература. Ви ги претставуваме само главните елементи за да се покаже можностите за инвеститорот и да се разбереме примери на кодот.

Во PHP регуларниот израз е формално дефинирана многу тешко, а со тоа и да се поедностави опис. Регуларен израз кој е текстуален стринг. Се состои од еден посветен сепаратор дефиниција и модификатор укажува на начин да се справи со неа. Можно вклучување во разни алтернативи и повторувања на шаблони.

На пример, во изразот / \ d {3} - {2} \ d - \ d {2} / m делител е "/", по дефиниција, а симболот «М» е за скенирање.

Сите моќта на регуларни изрази е кодиран со користење на мета-знаци. главен јазик метазнакот е обратна коса црта - "\". Се менува видот на следниве знаци на спротивната (на пр. Е. претвора во обичен карактер маска и обратно). Друга важна метазнакот е права линија «|», одредува алтернативни дефиниција. Повеќе примери за мета-знаци:

^ Започнете објект или низа
( започнете подшаблон
) крајот подшаблон
{ почеток квантификатори
} крајот квантификатори
\ d децимална цифрен 0-9
\ D кој било знак дека не е број
\ s празни симбол, простор, табот,
\ w симбол речникот

PHP, обработка на регуларни изрази, вселената се смета како посебен валиден карактер, па израз на XYZ и АБЦ каде што се различни.

subpatterns

Во PHP на регуларниот subpatterns со загради, и тие се понекогаш се нарекува "подизрази". Врши следниве функции:

  1. алтернативи распределба. На пример, шемата на топлина (нешто | птица |) се совпаѓа со зборовите "топлина", "Жар-птица" и "жешки". И без загради тоа ќе биде само празен стринг, "птица" и "жешки".

  2. "Спектакуларни" подшаблон. Ова значи дека ако моделот се совпаѓа со поднизата, а потоа се враќа во сите натпревари. За да биде појасно, ние им даде пример. Со оглед на следниве регуларниот израз: победникот добива ((злато | позлатен) (медал | чаша)) - и низа за натпревари ", победникот добива златен медал". Во прилог на почетна фраза, ќе бидат издадени резултатите од пребарувањето: "Златен медал", "медали", "злато".

Операторите повторувања (kvadrifikatory)

Во составувањето на регуларниот израз често се потребни за да се анализира повторување на броеви и симболи. Ова не е проблем, ако не многу повторувања. Но, што да се прави кога не се знае нивниот точен број? Во овој случај тоа е потребно да се користи специјални метазнаци.

За опис на повторувања користи kvadrifikatory - метазнаци да го одредите бројот. Kvadrifikatory се од два вида:

  • заеднички во загради;
  • намалена.

Генерално квантификатори допре со минимален и максимален број на дозволени повторувања елемент во форма на два броеви во загради, како што x {2,5}. Ако максималниот број на повторувања не е познато, вториот аргумент не е наведено: x {2}.

Скратено квантификатори се симболи за најчестите на повторувања, со цел да се избегнат непотребни синтакса преоптоварување. Обично постојат три исечоци:

1. * - нула или повеќе повторувања, што е еквивалентно на {0,}.

2. + - еден или повеќе повторувања, односно, {1} ...

3.? - нула или само еден повторуваат - {0,1}.

примери назив

За оние кои учат регуларни изрази, примери - најдобар учебник. Ние им даде неколку кои ги покажуваат своите можности со минимален напор. Сите код е целосно компатибилен со верзии на PHP 4.x и погоре. За да се разбере целосно синтаксата и користење на сите јазични карактеристики препорачуваме книгата на Ј .. Friedl "регуларни изрази", кој целосно смета синтаксата, и постојат примери на регуларни изрази не само PHP, но исто така и за Python, Perl, MySQL, Java, Ruby, и C #.

Валидација E-mail адреса

Задача. Постои Интернет страница за која се бара посетителот е-мејл адреса. Регуларен израз мора да се провери точноста на адресите пред испраќање на пораки. Проверете да не е гаранција дека на одредено сандаче всушност постои и добива пораки. Но разчиствате очигледно погрешни адреси што може.

Одлука. Како и со било кој програмски јазик, во PHP верификација назив е-мејл-адреса може да се спроведе на различни начини, и примерите во овој член не се конечни и единствениот избор. Затоа, во секој случај, ќе се обезбеди листа на барања, кои треба да бидат земени во предвид при програмирање и специфичните имплементација целосно зависи од инвеститорот.

Така, изразот дека тестовите валидна e-mail, треба да проверите следниве услови:

  1. Присуство во стартната линија @ симбол, и не постојат празнини.
  2. дел од доменот на адреса на @ симбол, содржи само важечки знаци за имиња на домени. Истото важи и за името на корисникот.
  3. При проверката на корисничко име е потребно за да се утврди присуство на специјални карактери како апостроф или вертикална линија. Таквите симболи се потенцијално опасни и може да се наоѓаат во такви видови на напади дека SQL инјекција. Избегнувајте адреси.
  4. кориснички дозволи само една точка, која не може да биде првиот или последниот карактер во низа.
  5. Името на доменот мора да содржи најмалку две, а не повеќе од шест знаци.

На пример, земајќи ги во предвид сите овие услови може да се види на следната слика.

Потврдување на URL

Задача. Проверете дали одреден текст стринг важи на адресата URL-то. Уште еднаш, ние се напомене дека регуларни изрази URL-проверка може да се спроведе на различни начини.

Одлука. Нашите финалната верзија е како што следува:

/^(https?:\/\/)?([\da-z\.-]+)\.([az\.]{2,6})([\/\w \ .-] *) * \ /? $ /

Сега да ги анализираме неговите компоненти во повеќе детали со цртање.

патентното барање 1 Пред URL не треба да има никакви знаци
барањето 2 Проверка на присуство на задолжителниот префиксот "http»
точка 3 Не смее да има симболи
барањето 4 Ако има «S», URL поени за обезбедениот врска «https»
барањето 5 Потребни дел од "//"
барањето 6 Нема знаци
p. 7-9 Проверка на домен првото ниво и присуството на точка
p.10-13 Потврдување на доменот на пишување на втор степен и точка
p.14-17

структура датотека URL - збир на броеви, букви, долни, цртички, точки и коса црта на крајот

Проверете броеви на кредитни картички

Задача. Треба да се спроведе проверка на внесениот број на кредитна картичка од најчестите системи за плаќање. Друга варијанта само за картички Виза и Мастеркард.

Одлука. При создавањето на изразување треба да се земе во предвид можното присуство на празнините во влез соба. На бројки на мапата се поделени во групи за полесно читање и диктат. Затоа, природно е дека едно лице може да се обидат да влезат голем број на овој начин (на пр. Е. Користење празните места).

Напиши универзален израз кој ги зема во предвид можните места или цртички, е покомплициран отколку едноставно ги отфрли сите знаци освен цифри. Затоа, ние препорачуваме користење на маска израз / D, кој ги отстранува сите знаци освен цифри.

Сега можете да се обратите директно на бројот на проверка. Сите компании, кредитна картичка издавачи користи уникатна формат на број. Во примерот што се користи, и клиентот не треба да го внесете името на компанијата - тоа е определено со бројот. Visa картички секогаш започнуваат со броевите 4 и има должина од 13 или 16 цифри. MasterCard почнува во опсег од 51-55 со долга број 16. Како резултат на тоа, ние се добие на следниот израз:

Пред обработка на нарачки може да биде дополнително тестирани последните цифри од бројот, која се пресметува на алгоритам Luhn.

Потврдување на телефонски број

Задача. Проверка на точноста на внесените телефонски број.

Одлука. Бројот на цифри во фиксни и мобилни телефонски броеви се разликуваат значително во зависност од земјата, толку универзално да се провери со користење на регуларни изрази, телефонски број правилно невозможно. Но, меѓународните броеви имаат строги формат и совршено за проверување на шема. Дури и повеќе, така што се повеќе и повеќе национални телефонски оператори се обидуваат да ги исполнат истите стандард. Соба структура е како што следува:

+ CCC.NNNNNNNNNNxEEEE, каде што:

- C - е кодот на земјата се состои од 1-3 цифри.

- N - број до 14 цифри.

- Е - опционални продолжување.

Плус е неопходен елемент, и знакот X е присутна само кога е потребно продолжување.

Како резултат на тоа имаме на следниот израз:

^ \ + [0-9] {1,3 } \ [0-9] {4,14}. (:?. X +)? $

Бројките во опсег

Задача. Неопходно е да се обезбеди случајно број на одреден опсег. Покрај тоа, тоа е потребно да се најде на регуларниот израз само од броеви од опсегот.

Одлука. Еве неколку изрази на некои од најчестите случаи:

Одредување часа од 1 до 24 ^ (1 [0-2] | [1-9]) $
Ден во месецот 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Секунди или минути 0-59 ^ [1-5]? [0-9] $
A број од 1 до 100 * (100 |? [1-9] [0-9]) $
Денот на 1-366 година ^ (36 [0-6] | 3 [0-5] [0-9] | [12] [0-9] {2} |? [1-9] [0-9]) $

Барај IP-адреси

Задача. Неопходно е да се утврди дали даден стринг е валидна IP-адреса во IPv4 формат во опсег од 000.000.000.000-255.255.255.255.

Одлука. Како и со било каков проблем во јазикот на PHP, совпаѓа регуларниот израз кој има многу varintov. На пример, ова:

Онлајн проверка на изразите

Проверете назив правилно за почетници може да биде тешко, поради комплексноста на синтаксата, кој се разликува од "обичните" програмски јазици. За да се реши овој проблем, постојат многу онлајн тестери изрази кои го прават тоа лесно да се провери точноста на образецот што го креиравте во реалниот текст. На програмерот влегува податоците на изразување и верификација и веднаш го видите е резултат на обработка. Обично постои претстави оделот, кој детално регуларни изрази, примери и разликите имплементација во најголем продолжен јазици.

Но, за да целосно доверба онлајн услуги резултати не се препорачува за сите програмери кои користат PHP. Регуларен израз кој е напишан и заверена во лице, го зголемува квалификација и гарантира отсуство на грешки.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 mk.unansea.com. Theme powered by WordPress.