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

Вовед во регуларни изрази Во PHP
Од страна на Бернард Peh

Во Linux и Unix, синтаксата кој најчесто се користи од страна на многу апликации за специфицирање на текстот модели е познат како регуларни изрази или во кратка форма – назив. Назив е многу моќна техника за да се опише обрасци и многу програми ги користат за да се опише секвенци од знаци да бидат заменети. Барај програми како што се "grep’ голема мера се потпираат на назив. Во суштина назив формира јадро во светот Linux. Многу скриптирање на јазици како Perl, рубин, PHP…итн нема да се изгради во назив функции, како и. Па можете да видите, учење регуларен израз е важно, бидејќи тие се користат многу работи во многу места, и веројатно уште повеќе во иднина.

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

Да се ​​направи брз преглед досега, регуларен израз е низа од карактери буквално, џокери, изменувачи и сидра.

Буквално Ликови

Буквално карактери се букви, бројки и специјални знаци кои се совпаѓаат само себе. Примери се ABC, 123, ~ @ И така натаму (некои карактери се задржани иако).

– Инклузијата опсег [м-n] совпаѓа со еден од било кој карактер се вклучени во опсег од m до n.

Пример '[А-Z]’ ќе одговара на секоја алфа карактер, што паѓа во рамките на А до Ш опсег.

– По исклучок опсег [^ M-n] совпаѓа со еден од било кој карактер кои не се вклучени во опсег од m до n. Пример '[^ 0-9]’ ќе одговара на секоја не-цифрен карактер.

– А период “.” одговара било кој карактер. Тоа е исто така познат како маска. Пример 'a.c’ ќе одговара "на АЕК, "АК", 'А на @’ и така натаму.

– На специјални карактери ” овозможи толкување на специјални знаци. Пример 'a.c’ ќе одговара на "AC’ само. Се сеќавам дека.’ е резервиран карактер да претставува маска? Затоа да се совпадне со период, односно ''., ние треба да го избегнат, како толку.’

– На изразување [:alnum:] ќе одговара на сите алфа-нумерички карактери. Тоа е кратенка за [A-Za-z0-9]. Како што можете да видите, тоа не е навистина кратенка. На изразување [:alnum:] може да биде полесно да се сетам за некои луѓе.

– На изразување [:алфа:] ќе одговара на сите алфа карактери. Тоа е кратенка за [-Z-А-Za].

– На изразување [:празно:] ќе се совпадне со простор или јазиче.

– На изразување [:цифрен:] ќе се совпадне со нумерички цифри. Тоа е кратенка за [0-9].

– На изразување [:намали:] ќе одговара на сите мали букви. Тоа е кратенка за [А-Z].

– На изразување [:горниот:] ќе одговара на сите големи букви. Тоа е кратенка за [А-Z].

– На изразување [:точка:] ќе одговара на сите печатење знаци, со исклучок на простори и alphanumerics.

– На изразување [:простор:] ќе се совпадне со карактер празни места.

Изменувачи

А модификатор го менува значењето на претходната шема веднаш карактер.

– Ѕвездичка ('*') натпревари 0 или повеќе од претходната мандат. Пример 'a *’ ќе одговара ”, "А", "АА", "AAAAA’ и така натаму (Забележете ја употребата на ”. Тоа едноставно значи дека изразот одговара ништо, како и).

– Знак прашалник ('?") натпревари 0 или 1 од претходниот мандат. Пример 'а?’ ќе одговара ” и 'а’ само.

– А плус знак ("+") натпревари 1 или повеќе од претходната мандат. Пример "А +’ ќе одговара на "а", 'AAAAAAA’ и така натаму. Тоа нема да одговара ”.

– {м,n} натпревари меѓу m и n појави на претходниот мандат. Пример 'а{1,3}’ ќе одговара на "а", 'Аа’ и "ААА’ само.

– {n} натпревари точно n појави на претходниот мандат. Пример 'а{2}’ ќе одговара 'аа’ само.

Сидра

Сидра го воспоставиме контекстот за моделот како таков “на почетокот на зборот” или “крајот на зборот”.

– Штуката '^’ го означува почетокот на една линија. Пример '^ http’ ќе одговара на секоја нова линија која почнува со "http".

– '$ На знакот за долар’ го означува крајот на линијата. Пример 'по $’ ќе одговара на секоја линија која завршува со "по". (Променливи во PHP започнува со $. Обидете се да не се збуни со тоа).

Групирање

Групирање '( )’ овозможува изменувачи да се применува на групи на назив назначувачи наместо само веднаш proceding назначувач. Пример '( аа | бб )’ ќе одговара или 'аа’ или "бб’

Доста е од досадни работи, тоа е време да се стави она што теоријата на назив во добар употреба.

PHP имплементација

Постојат 2 главни варијанти на назив, Perl компатибилна назив (PCRE) и POSIX-Детални. PHP нуди сосема многу од функциите за да се имплементираат овие 2 видови на назив. Во PHP, најчесто се користи PCRE функција е '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})?.

Првиот дел: '[[:цифрен:]]’ значи бројот опсег и {5} значи дека бројот мора да се случи 5 пати.

Вториот дел: The bracket ‘( )’ groups the ‘-[[:цифрен:]]{4}’ together and the ‘?’ means the expression ‘(-[[:цифрен:]]{4})’ или може да се случи 0 или 1 време.

За спроведување на назив во PHP, ние го користите следниов код:

$zipCodes = ‘xxxxx-xxxx’;

$pattern = ‘[[:цифрен:]]{5}(-[[:цифрен:]]{4})?";

ако (ereg($шема,$zipCodes)) {

ехо “исти се најде “;

}

друго {

ехо “одговара не е најдена”;

}

Пример 2: Појавување на Датуми

Велат дека ние сакаме да се провери датумите внесен од корисникот. Ако ние само го прифати датуми како “ГГГГ-ММ-ДД” или “ГГГГ-М-Д”, моделот назив ќе биде

[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}

Како што можете да видите, не може да има многу решенија на проблемот…

Заклучок

Назив може да биде тешко да се вари, но во прв логиката е едноставна ако сте во можност да ја практикуваат повеќе. Учење назив е толку важно како учењето PHP. Повеќе примери може да се види на веб-developer.sitecritic.net. Со среќа.

Бернард Peh е одличен passioner на веб технологии и еден од ко-основачите на Sitecritic.net Мапа на Осврти. Тој работи со искусни веб дизајнери и програмери за повеќе од 5 години, развој и дизајнирање комерцијални и некомерцијални веб-сајтови. Во слободното време, тој го прави веб коментарите, freelance SEO and PHP work. Visit his blog at Melbourne PHP

консултантска компанија посветена на подобрување на перформансите на е-трговија на повеќеканалните трговци на мало: http://консултантска компанија посветена на подобрување на перформансите на е-трговија на повеќеканалните трговци на мало?expert=Bernard_Peh

http://консултантска компанија посветена на подобрување на перформансите на е-трговија на повеќеканалните трговци на мало?Introduction-To-Regular-Expressions-In-PHP&id=222113

Поврзани слики:

автор: Јајце Персонал

Јајце = (Технологија + Интернет + отворен код + Линукс ) x (Вести + Осврти + Интелигенција)

Оставете Одговор

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *