Ինչ է ռեգուլյար արտահայտությունը և ինչպես այն ուտել

Ռեգուլյար արտահայտությունները շատ կարևոր են վեբ ծրագրավորողների համար: Նրանք հնարավորություն են տալիս գտնել, ճանաչել և հարկ եղած դեպքում փոփոխել ինչ-որ տեքստ, բառեր, կամ պարզապես սիմվոլների հաջորդականություններ: Այս գրառմանս մեջ ուզում եմ անդրադառնալ մի քանի հատ առավել շատ օգտագործվող ռեգուլյար արտահայտություններին:

Սկիզբ

Բազմաթիվ սկսնակ ծրագրավորողների համար շատ դժվար է հասկանալ, առավել ևս հիշել ռեգուլյար արտահայտությունների շաբլոնները, բայց երբ սկսում ենք ուսումնասիրել նրանք և գտնել օրինաչափություններ, ամեն ինչ դառնում է շատ հասկանալի: Նախքան ավելի բարդ բաներին անցնելը, ուզում եմ գրել, թե ինչից է ամեն ինչ սկսվում: Ուշադիր նայեք ստորև բերված աղյուսակը.

Ռեգուլյար արտահայտությունների սինտակսիսը

Ռեգուլյար արտահայտությունը Նշանակությունը
foo “foo” բառը
^foo “foo”-ն որպես ինչ-որ արտահայտության սկիզբ
foo$ “foo”-ն որպես ինչ-որ արտահայտության վերջ
^foo$ “foo”-ն որպես ինչ-որ արտահայտության միակ բառ
[abc] a, b, կամ c
[a-z] ցանկացած լատինատառ փոքրատառ սիմվոլ
[^A-Z] ցանկացած սիմվոլ, բացի լատինատառ մեծատառ սիմվոլներից
(gif|jpg) կամ “gif” կամ “jpg”
[a-z]+ մեկ կամ ավելի լատինատառ փոքրատառ սիմվոլներ
[0-9.-] ցանկացած թիվ, միջակետ և -
^[a-zA-Z0-9_]{1,}$ ցանկացած արտահայտություն, որը պարունակում է ամենաքիչը մեկ տառ, թիվ կամ _ նշանը
([wx])([yz]) wy, wz, xy, կամ xz
[^A-Za-z0-9] ցանկացած սիմվոլ (բացի տառերից ու թվերից)
([A-Z]{3}|[0-9]{4}) արտահայտություն, որը պարունակում է կամ 3 հատ մեծատառ սիմվոլ, կամ 4 հատ թիվ

Ռեգուլյար արտահայտությունների հետ օգտագործվող ֆունկցիաներ PHP-ում

Ֆունկցիայի անվանումը Նկարագրությունը
preg_match() Այս ֆունկցիան ստուգում է, արդյոք տրված արտահայտությունը համապատասխանում է տրված շաբլոնին և վերադարձնում TRUE, եթե համապատասխանում է, և FALSE` հակառակ դեպքում
preg_match_all() վերադարձնում է տրված շաբլոնի բոլոր մուտքերը տրված արտահայտությունում
preg_replace() Տրված արտահայտության մեջ կատարում է որոնում և փոփոխություն, ըստ տրված շաբլոնի
preg_split() բաժանում է տրված տողը ենթատողերի` ըստ տրված շաբլոնի
preg_grep() Տրված տողի համար վերադարձնում է տրված շաբլոնի մուտքերի մասիվը
preg_ quote() Տրված տողի համար հատուկ սիմվոլներից առաջ հետադարձ սլեշ է դնում

Ահա և վերջ… Հիմա կարող եմ արդեն անդրադառնալ հաճախ օգտագործվող օրինակներին`

Դոմենային անվանման ճիշտ գրության ստուգում

Ստուգենք, արդյոք տրված տողը ճիշտ է գրված, որպես դոմենային անվանում.

$url = "http://grigoryan.biz/";
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {
    echo "Ճիշտ է";
} else {
    echo "Սխալ է";
}

Փոխում ենք կրկնակի չակերտները փոքր չակերտների

preg_replace('B"b([^"x84x93x94rn]+)b"B', '?1?', $text);

Ստուգում ենք գաղտնաբառերը

Շատ հաճախ պետք է լինում ստուգել` արդյոք օգտագործողի կողմից մուտք արված գաղտնաբառը համապատասխանում է ինչ-որ կանոնների, օրինակ` ամենաքիչը 6 սիմվոլ, տառեր, թվեր և այլն: Ահա նման օրինակ.

preg_match('A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z',$password);

Սիմվոլների փոխարնիում սմայլիկներով

Շատ հաճախ սոցիալական ցանցերում տեսնում ենք, երբ մուտքագրելով “: )” էկրանին երևում է սմայլիկ: Ահա փոխակերպման օրինակ.

$texte='Տեքստ և սմայիլկ :-) ';
echo str_replace(':-)','<img src="smileys/souriant.png">',$texte);

Վերջին օրինակն այնքան էլ չէր վերաբերում ռեգուլյար արտահայտություններին, ուղղակի նմանատիպ օրինակ էր…

Դե ինչ… այսօր այսքանը…

Գուցե հետաքրքրի

Leave a Reply






Վճարված գովազդ ::