Ռեգուլյար արտահայտությունները շատ կարևոր են վեբ ծրագրավորողների համար: Նրանք հնարավորություն են տալիս գտնել, ճանաչել և հարկ եղած դեպքում փոփոխել ինչ-որ տեքստ, բառեր, կամ պարզապես սիմվոլների հաջորդականություններ: Այս գրառմանս մեջ ուզում եմ անդրադառնալ մի քանի հատ առավել շատ օգտագործվող ռեգուլյար արտահայտություններին:
Սկիզբ
Բազմաթիվ սկսնակ ծրագրավորողների համար շատ դժվար է հասկանալ, առավել ևս հիշել ռեգուլյար արտահայտությունների շաբլոնները, բայց երբ սկսում ենք ուսումնասիրել նրանք և գտնել օրինաչափություններ, ամեն ինչ դառնում է շատ հասկանալի: Նախքան ավելի բարդ բաներին անցնելը, ուզում եմ գրել, թե ինչից է ամեն ինչ սկսվում: Ուշադիր նայեք ստորև բերված աղյուսակը.
Ռեգուլյար արտահայտությունների սինտակսիսը
| Ռեգուլյար արտահայտությունը | Նշանակությունը |
| 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);
Վերջին օրինակն այնքան էլ չէր վերաբերում ռեգուլյար արտահայտություններին, ուղղակի նմանատիպ օրինակ էր…
Դե ինչ… այսօր այսքանը…