Paggamit ng preg_match () Pag-andar sa PHP

Use Preg_match Function Php



Ang regular na expression ay isang partikular na pattern na maaaring magamit upang tumugma, maghanap, at palitan ang anumang partikular na string sa data ng teksto. Ito ay isang malakas na tampok ng anumang wika ng programa. Pangunahing ginagamit ito upang maisagawa ang iba't ibang mga uri ng pagpapatunay ng form, tulad ng pagpapatunay ng email, pagsuri sa format ng telepono, pagpapatunay ng mga username at password na mga patlang ng form sa pag-login, atbp. Ang anumang partikular na nilalaman ng teksto ay maaaring hanapin at mapalitan gamit ang isang regular na expression pattern Tinatawag din itong regex o RegExp. Ang iba't ibang mga uri ng mga simbolo ay ginagamit upang tukuyin ang pattern ng regex.

Maraming mga built-in na pag-andar na umiiral sa PHP para sa regular na pagpapahayag. Ang pagpapaandar na preg_match () ay isa sa mga ito. Ang pagpapaandar na ito ay ginagamit para sa pagtutugma ng isang partikular na pattern sa data ng string. Kung paano magagamit ang pagpapaandar na preg_match () sa PHP para sa pagsasagawa ng iba't ibang mga gawain ay ipinaliwanag sa tutorial na ito.







Syntax:

Int ohindi totoo paran_match (lubid$ pattern,lubid$ paksa [, array &$ tugma = wala [,int$ flags = 0 [,int$ offset = 0]]])

Ang function na ito ay maaaring tumagal ng limang mga argumento. Ang unang pagtatalo, $ pattern , ay sapilitan, na tumutukoy sa pattern para sa pagtutugma. Ang pangalawang argumento, $ paksa , ay sapilitan, at naglalaman ng data ng string kung saan ilalapat ang pattern. Ang pangatlong argumento, $ tugma , ay opsyonal at nagbabalik ito ng isang array batay sa laban. Ang ika-apat na pagtatalo, $ flags , ay opsyonal, na naglalaman ng iba't ibang mga uri ng mga halagang i-flag batay sa laban. Ang pang-limang argumento, $ offset , ay opsyonal, at maaaring magamit upang tukuyin ang panimulang posisyon ng paghahanap.



Halimbawa 1: Itugma ang pattern sa isang case-sensitive at case-insensitive na paraan

Ipinapakita ng sumusunod na halimbawa ang paggamit ng pagpapaandar ng preg_match () para sa pagtutugma ng string sa isang case-sensitive at case-insensitive na paraan. Lumikha ng isang file na PHP kasama ang sumusunod na script.



Dito, tatlong mga pattern ang ginagamit para sa pag-apply sa tatlong mga pagpapaandar na preg_match (). Ang unang pattern, '/Gusto/', ay ginagamit para sa pagtutugma ng string sa isang case-sensitive na paraan. Ang pangalawang pattern, '/gusto/' , ay ginagamit para sa pagtutugma ng string sa isang case-sensitive na paraan. Ang pangatlong pattern, 'Gusto / i' , ay ginagamit para sa pagtutugma ng string sa isang case-insensitive na paraan. search_pattern () Ang pagpapaandar ay tinukoy sa script upang magamit ang pagpapaandar na (na) fungsi para sa pagtutugma, at inililimbag nito ang mensahe batay sa naibalik na halaga ng pagpapaandar na ito.







// Tukuyin ang teksto

$ text = 'Gusto ko ng PHP. Gusto ko rin ang JavaScript. ';

// Tukuyin ang tatlong uri ng pattern

$ pattern1 = '/Gusto/';

$ pattern2 = '/gusto/';

$ pattern3 = '/ Gusto / ako';

// Tukuyin ang pagpapaandar para sa paghahanap ng pattern sa teksto

pagpapaandarpaghahanap_pattern($ pattern, $ string)

{

kung( paran_match ($ pattern, $ string))

itinapon 'Resulta ng paghahanap: Ang tugma ay matatagpuan para sa pattern -$ pattern
'
;

iba pa

itinapon 'Resulta ng paghahanap: Ang match ay hindi matatagpuan para sa pattern -$ pattern
'
;

}

// I-print ang orihinal na teksto

itinapon 'Ang orihinal na teksto ay: $ text
'
;

// Tawagan ang pagpapaandar ng tatlong beses para sa tatlong mga pattern

paghahanap_pattern($ pattern1, $ text);

paghahanap_pattern($ pattern2, $ text);

paghahanap_pattern($ pattern3, $ text);

?>

Paglabas :

Lilitaw ang sumusunod na output pagkatapos patakbuhin ang script mula sa server. Ipinapakita ng unang linya ang teksto kung saan hinanap ang mga pattern. Ipinapakita ng pangalawang linya ang output ng unang pattern. Ipinapakita ng pangatlong linya ang output ng pangalawang pattern. Ipinapakita ng ika-apat na linya ang output ng pangatlong pattern.



Halimbawa 2: Patunayan ang URL

Ipinapakita ng sumusunod na halimbawa ang paraan upang mapatunayan ang URL address gamit ang pagpapaandar na preg_match (). Lumikha ng isang file na PHP kasama ang sumusunod na script.

Ang isang halaga ng URL ay itinalaga sa variable na $ url para sa pagsubok. Ang ‘@ ^ (?: Https: //)? ([^ /] +) @I’ string ay ginamit bilang isang pattern sa pagpapaandar ng preg_match () upang suriin kung ang URL address ay wasto o hindi. Kung ito ay wasto, pagkatapos ang hostname at ang domain name ay mai-print, kung hindi man, ang mensahe ng error ay mai-print.



// Tukuyin ang URL

$ url = 'https://www.linuxhint.com';

// Tukuyin ang pattern para sa pagpapatunay ng URL

$ pattern ='@ ^ (?: https: //)? ([^ /] +) @i';

// Check the URL was valid or not

kung( paran_match ($ pattern, $ url, $ tugma1))

{

// I-print ang mensahe ng tagumpay

itinapon 'Ang URL ay wasto.
'
;

// I-print ang array na naglalaman ng mga halaga ng tugma

itinapon 'Ang mga halaga ng array ay:';

print_r ($ tugma1);

// Kunin at i-print ang halaga ng host

$ host = $ tugma1[1];

itinapon '
Pangalan ng host ay:$ host'
;

// Search the domain name from the host halaga

paran_match ('/[^.-lex.europa.eu+.[ ------.íritu+$/', $ host, $ match2);

itinapon '
Ang pangalan ng domain ay:{$ match2 [0]}'
;

}

iba pa

{

// I-print ang mensahe ng error

itinapon 'Di-wastong URL.';

}

?>

Paglabas :

Lilitaw ang sumusunod na output pagkatapos patakbuhin ang script mula sa server. Ang ibinigay na URL sa script ay wasto. Kaya, ipinapakita ng output ang mga halaga ng $ tugma, ang hostname ng URL, at ang domain name ng URL.

Halimbawa 3: pattern sa Paghahanap na may mga halagang flag at offset

Ipinapakita ng sumusunod na halimbawa ang mga paggamit ng watawat at mga halaga ng offset sa pagpapaandar na preg_match (). Lumikha ng isang file na PHP kasama ang sumusunod na script.

Tatlong mga pattern ang ginagamit sa script para sa tatlong uri ng pagtutugma. Sa unang pagpapaandar ng preg_match (), ang ‘/ (bangla) (desh) /’ ay ginagamit bilang pattern at ang halaga ng watawat, ginagamit ang PREG_OFFSET_CAPTURE. Ang mga halaga ng $ tugma ang variable ay mai-print batay sa output ng unang pagpapaandar ng preg_match (). Sa pangalawang pagpapaandar ng preg_match (), ang ‘/ (bangla) (natutuwa) * (desh) / i’, ay ginagamit bilang pattern at ang halaga ng watawat, ginagamit ang PREG_UNMATCHED_AS_NULL. Kung ang anumang bahagi ng pattern ay hindi tumutugma sa gayon ang isang halaga ng NULL ay maiimbak sa array. Ang mga halaga ng $ tugma ang variable ay mai-print batay sa output ng pangalawang pagpapaandar ng_disk_match (). Sa pangatlong pagpapaandar ng preg_match (), ang '/ glad /' ay ginagamit bilang pattern, ginagamit ang halaga ng flag, PREG_OFFSET_CAPTURE at 3 ang ginamit bilang ang halaga ng offset. Ang mga halaga ng $ tugma ang variable ay mai-print batay sa output ng pangatlong pagpapaandar na_mess_match ().



// Tukuyin ang halaga ng teksto

$ text = 'Bangladesh';

// Tukuyin ang tatlong uri ng mga pattern

$ pattern1 = '/ (bangla) (desh) / i';

$ pattern2 = '/ (bangla) (natutuwa) * (desh) / i';

$ pattern3 = '/masaya/';


// Paggamit ng flag ng PREG_OFFSET_CAPTURE

paran_match ($ pattern1, $ text, $ tugma,PREG_OFFSET_CAPTURE);

itinapon '
';  

print_r ($matches);

echo '

'
;

// Paggamit ng flag ng PREG_UNMATCHED_AS_Null

paran_match ($ pattern2, $ text, $ tugma,PREG_UNMATCHED_AS_Null);

itinapon '
';  

print_r ($matches);

echo '

'
;

// Paggamit ng PREG_OFFSET_CAPTURE flag at offset na halaga

paran_match ($ pattern3, $ text, $ tugma,PREG_OFFSET_CAPTURE, 3);

itinapon '
';  

print_r ($matches);

echo '
'
;

?>

Paglabas :

Lilitaw ang sumusunod na output pagkatapos patakbuhin ang script mula sa server.

Konklusyon

Ang mga gamit ng pagpapaandar na preg_match () ay naipaliwanag sa tutorial na ito gamit ang maraming mga halimbawa. Ang mga gamit ng iba't ibang mga argumento ng pagpapaandar na ito ay ipinakita rin dito. Magagamit ng mga mambabasa nang maayos ang pagpapaandar na ito sa kanilang script pagkatapos basahin ang tutorial na ito.