Ang PHP, bilang angkop sa isang modernong programming language, ay nag-aalok sa developer ng isang hanay ng mga function para sa paggamit ng mga regular na expression. Maaari kang maghanap ng mga paglitaw ng mga string sa iba pang mga string gamit ang mga kumplikadong pamantayan.
- PREG_PATTERN_ORDER;
- PREG_SET_ORDER.
Pagbukud-bukurin ayon sa Opsyon 1 pinapangkat ang mga resulta ng paghahanap ayon sa regular na expression number (ang default). Sa pangalawang kaso, ang mga resulta ay pinagsama ayon sa kanilang lokasyon sa row.
Simbolo - elemento ng templateMahalagang tandaan na ang template ay gumagana sa mga simbolo. Matagal nang nakalimutan ng programming kung ano ang "character" na uri ng data. Ang mga modernong wika ay hindi bumababa sa konsepto ng isang "string", ngunit tungkol sa pattern, kailangan mong maunawaan: ang mga simbolo ay manipulahin dito.
Ang pagbuo ng isang template, una sa lahat, ay tumutukoy sa kinakailangang pagkakasunod-sunod ng mga character. Kung malinaw mong naiintindihan ito, walang magiging mga error sa template. Sa anumang kaso, ito ay magiging mas kaunti.
- a ay isang partikular na elemento ng template - isang simbolo.
- Ang a-z ay isang elemento ng template, isa ring character, ngunit may value lang mula a hanggang z - lahat ng Latin sa lowercase.
- Ang 0-9 ay isang numero, anumang numero, ngunit ang 1-3 ay 1, 2 o 3 lamang.
Ang kaso sa pattern ay mahalaga. Ang una at huling mga character ng pattern ay makabuluhan. Maaari mong tukuyin kung saan magsisimula at magtatapos ang template.
Template ng functionAng PHP preg match ay gumagamit ng karaniwang regular na expression syntax. ipahiwatig ang isa sa mga simbolo na ipinahiwatig sa kanila:
- mga karakter lamang a, b, c.
- [^ABC] lahat maliban sa mga character A, B, C.
- \w at \W - text o non-text na character.
- \s at \S - whitespace o non-whitespace na character.
- \d at \D - digit o hindi digit.
Ang mga umuulit na character ay ipinahiwatig ng mga kulot na brace - (n,m) at sumangguni sa nakaraang karakter.
- n nagsasaad ng pag-uulit ng "hindi bababa sa";
- m - pag-uulit ng "wala na".
Ang syntax ay nagbibigay ng maraming mga pagpipilian para sa paglikha ng mga template, ngunit ito ay pinakamahusay na magsimula sa mga pangunahing kaalaman, iyon ay, sa mga simpleng nakasulat sa iyong sariling kamay, kung saan ang mga kumplikadong elemento at kumbinasyon ay wala.
Sa madaling salita, sa pamamagitan ng paglilista ng mga tunay na character na kailangan, na nagpapahiwatig ng kanilang mga kinakailangang dami, at isinasaalang-alang na ang karakter na "^" ay tumutugma sa simula, at "$" sa dulo ng linya, maaari kang lumikha ng mga simpleng template. Sa pamamagitan ng pagsusuri sa mga tunay, mahusay na na-debug na mga regular na expression mula sa mga kwalipikadong eksperto, maaari kang makakuha ng matatag na kaalaman upang lumikha ng mga kumplikadong aplikasyon ng preg match all. Ang arsenal ng PHP ay hindi limitado sa dalawang function na ito, ngunit sila ang pinakakaraniwang ginagamit.
Simple Practicepattern ng integer:
- "/*/"
Gayundin isang integer pattern, ngunit maaaring mayroong isang sign sa harap ("+", "-"), at maaaring may mga karagdagang puwang sa harap/likod:
- /^[\s|\+|\-](0,1)*/
Gayundin:
- /^[\s|\+|\-](0,1)*(\.)*/ - isang numerong may tuldok.
- /+@+\.(2,3)/ - opsyon para sa pagkilala sa e-mail.
Gamit ang iyong sariling mga template para sa preg match lahat, mga halimbawa ng mga ito sa Internet, ang pagsusuri sa code ng mga pahina ng website at iba pang mga mapagkukunan ay nagpapahintulot sa iyo na lumikha ng iyong sariling library ng mga template.
Mayroong maraming mga pagpipilian para sa paghahanap ng impormasyon. Sa partikular, ang huling dalawang konstruksyon na ibinigay sa itaas ay maaaring mai-modelo sa ibang paraan. Sa maraming pagkakataon, ibibigay ang kagustuhan sa template na nagbibigay ng gustong tugma nang mas mabilis at mas tumpak. Ang paggamit ng preg match sa lahat sa PHP, pati na rin ang mga katulad na function sa ibang mga wika, ay nangangailangan ng pagsasanay, atensyon, at paunang pagsusuri sa kawastuhan ng mga template.
int preg_match_all (string pattern, string subject, array &matches [, int flags [, int offset]])Hinahanap ang paksa ng string para sa lahat ng mga tugma ng pattern pattern at inilalagay ang resulta sa array ng mga tugma sa pagkakasunud-sunod na tinutukoy ng kumbinasyon ng mga flag.
Pagkatapos mahanap ang unang tugma, ang mga kasunod na paghahanap ay isasagawa hindi mula sa simula ng string, ngunit mula sa dulo ng huling nahanap na pangyayari.
Maaaring pagsamahin ng opsyonal na parameter ng flags ang mga sumusunod na value (tandaan na walang saysay ang paggamit ng PREG_PATTERN_ORDER kasabay ng PREG_SET_ORDER):
PREG_PATTERN_ORDER
Kung nakatakda ang flag na ito, ang resulta ay iuutos bilang sumusunod: ang elemento ng $matches ay naglalaman ng hanay ng mga kumpletong paglitaw ng pattern, ang elemento ng $matches ay naglalaman ng hanay ng mga paglitaw ng unang subpattern, at iba pa.
Ibinabalik ang bilang ng mga paglitaw ng pattern na natagpuan (maaaring zero) o FALSE kung may anumang mga error na naganap sa panahon ng pagpapatupad.
Halimbawa 2: Matakaw na pagtutugma ng mga HTML tag |