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

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

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

Брз развој Интернета и веб-дизајн језика потребно стварање разноврсних и компактних средстава обраду текста са минималном износу потребном за овог законика. То није никакав изузетак и популаран међу почетницима и професионалним програмере ПХП језика. Регуларни израз језика као образаца текста да поједностави задатак руковања текст и смањити број за десетине и стотине линија. Многи проблеми не могу бити решени на све без њега.

Регуларни изрази у ПХП

Тект језик има три механизма за рад са регуларним изразима - «ерег», «мб_ерег» и «прег». Најчешћи је интерфејс «прег», чије функције омогућавају приступ библиотеци пцре регуларним изразом подршке, оригинално развијен за Перл језика, који је укључен у ПХП пакету. Прег-траже функције у датој текст стринг упаривања, према одређеном обрасцу на језику регуларних израза.

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

Као део кратког чланка је немогуће описати детаљно цео регуларни израз синтакса, за то постоји посебан литература. Ми представљамо само главне елементе да покаже могућности за програмера и разумеју примере кода.

У ПХП регуларни израз је формално дефинисан веома тешко, а самим тим поједноставити опис. Редовна израз је у виду текста. Састоји се од наменског сепаратор шаблона и модификатора указује на начин да се рукује. Могући укључивање у различитим алтернативама и понављања образаца.

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

Сва моћ регуларних израза кодирана користећи мета-карактере. Метацхарацтер главни језик је косих - "\". Мења врсту након знакова на супротној (тј. Д. претворена у обичан џокер знакова и обрнуто). Друга важна метацхарацтер је равна линија «|», наводи алтернативни шаблон. Више примера мета-знакова:

^ Старт објекат или низ
( Старт субпаттерн
) Крај субпаттерн
{ Почетак квантификатор
} Крај квантификатор
\ Д децималне цифре од 0 до 9
\ Год било који знак да није број
\ с празан симбол, размаци,
\ В simbol рјечник

ПХП обраду регуларне изразе, простор сматра посебном важећим знаком, тако да је израз КСИЗ и АБЦ у којој су различите.

субпаттернс

У ПХП редовним субпаттернс по заградама, а они се понекад називају "субекпрессионс". Обавља следеће функције:

  1. Расподјела алтернативе. На пример, топлота образац (нешто | Птица |) се поклапа са речи "топлота", "Фиребирд" и "вруће". И без заграда то ће бити само празна ниска, "птица" и "вруће".

  2. "Спектакуларан" субпаттерн. То значи да ако је образац одговара подстроку, затим се враћа све утакмице. За јасноће, дајемо пример. С обзиром на следећи регуларни израз: победник добија ((злато | позлаћени) (медаља | шоља)) - и гудачки за утакмице ", победник добија златну медаљу." Поред почетне фразу, резултати претраге ће бити издата: "златну медаљу", "медаље", "злато".

Оператори понављања (квадрификатори)

У састављању регуларни израз често је потребно да се анализира понављање бројева и симбола. То није проблем, ако не и много понављања. Али, шта да радим кад не знамо њихов тачан број? У том случају потребно је да користите специјалне метацхарацтерс.

За опис понављања користе квадрификатори - метацхарацтерс навести број. Квадрификатори су две врсте:

  • цоммон у заградама;
  • смањен.

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

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

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

2. + - један или више понављања, односно {1} ...

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

Примери Регек

За оне који уче регуларне изразе, примери - најбољи уџбеник. Дајемо неколико да покажу своје могућности са минимумом напора. Све код је потпуно компатибилан са верзијама ПХП 4.к и горе. Да бисте у потпуности разумели синтаксу и коришћење свих језичких функција препоручујемо књигу Ј .. Фриедл, "регуларним изразима", који у потпуности сматра синтаксе, а постоје и примери регуларних израза не само ПХП већ и за Питхон, Перл, МиСКЛ, Јава, Руби, и Ц #.

Валидација е-маил адреса

Задатак. Постоји страна интернет на којој се тражи емаил адреса посетилац. Регуларни израз мора да провери исправност адресе пре слања поруке. Цхецк не гарантује да је наведено поштанско сандуче заиста постоји и прима поруке. Али искорени очигледно погрешне адресе то може.

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

Тако, израз који тестира важећу е-маил, треба да проверите следеће услове:

  1. Присуство на стартној линији @ симбол, и не постоје недостаци.
  2. Домен део адресе симбола @, садржи само важећи знакови за имена домена. Исто важи и за име корисника.
  3. Када проверавате корисничко име је потребно да се утврди присуство специјалних знакова, као што је апостроф или вертикалне линије. Такви симболи су потенцијално опасни и могу бити садржане у таквим врстама напада који СКЛ-ињекције. Избегавајте адресе.
  4. корисничка дозвољавају само једну тачку, која не може бити ни први ни последњи знак у низу.
  5. Назив домена мора да садржи најмање два и не више од шест знакова.

Пример, узимајући у обзир све ове услове могу се видети на следећој слици.

Провера УРЛ

Задатак. Проверите да ли је наведено текст стринг валидна адреса УРЛ адресу. Још једном напомињемо да регуларни изрази УРЛ провера може реализовати на различите начине.

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

/^(хттпс?:\/\/)?([\да-з\.-]+)\.([аз\.]{2,6})([\/\в \ .-] *) * \ /? $ /

Сада анализирати његове компоненте детаљније помоћу цртеж.

tvrdnja 1 Пре него што је УРЛ адреса не би требало да има било какве знакове
тврдња 2 Проверите присуство обавезно префикс «хттп»
тачка 3 Не сме бити никаквих симбола
tvrdnja 4 Ако постоји «С», у УРЛ указује на сигурном везом «хттп»
zahtev 5 Потребан део од "//"
тврдња 6 Нема знакова
стр. 7-9 Провера први левел домаин и присуство тачке
п.10-13 Провера домена писања други ниво и тачка
п.14-17

Филе структура УРЛ адреса - скуп бројева, слова, истиче, цртице, тачке, а коса црта на крају

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

Задатак. Потребно је да спроведе валидацију унетог броја кредитне картице од најчешћих платних система. Варијанта само за картице Виса и МастерЦард.

Одлука. Приликом креирања израз треба да узме у обзир могуће присуство празнина у улазном соби. Цифре, на мапи су подељени у групе ради лакшег читања и диктата. Стога, природно је да особа може покушати да унесете број на овај начин (нпр. Д. Употреба простора).

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

Сада можете ићи директно на број провере. Све компаније, издаваоци кредитних картица користе јединствену број формата. У овом примеру се користи, а клијент не треба да унесете име фирме - то је одређена бројем. Виса картице увек почињу са бројевима 4 и има дужину од 13 или 16 цифара. Мастер почиње у распону од 51-55 са дуги низ 16. Као резултат тога, добијамо следећи израз:

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

Провера број телефона

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

Одлука. Број цифара у фиксним и мобилним телефонским бројевима разликују се у зависности од земље, тако универзално проверите помоћу регуларних израза, број телефона правилно немогуће. Али међународни бројеви имају строгу формат и савршен за проверу образац. Још више, тако да се све више и више националних телефонски оператери покушавају да испуне исте стандарде. Структура соба је следећа:

+ ЦЦЦ.ННННННННННкЕЕЕЕ, где је:

- Ц - је позивни број који се састоји од 1-3 цифара.

- Н - број до 14 цифара.

- е - опционо проширење.

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

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

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

Бројеви у распону

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

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

Одредити сата од 1 до 24 ^ (1 [0-2] | [1-9]) $
Дан у месецу 1-31 ^ (3 [01] | [12] [0-9] | [1-9]) $
Секунди или минута 0-59 ^ [1-5]? [0-9] $
Један број од 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]) $

Тражи ИП-адресе

Задатак. Неопходно је да се утврди да ли је дати низ је исправна ИП-адреса у ИПв4 формату у распону од 000.000.000.000-255.255.255.255.

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

У продаји провера израза

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

Али да се у потпуности поверења онлине сервиса резултати не препоручује за све програмере који користе ПХП. Редовна израз је написан и проверен лично, подиже квалификацију и гарантује одсуство грешака.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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