DatoriProgrammēšana

Regular expression (PHP). PHP: regulārās izteiksmes piemēri

Ciktāl informācijas pasaule ir liela un daudzveidīga, tā strauji attīstās un attīstās. Jebkurš risinājums ir tikai moments vispārējā kustības procesā. Zināšanas un pieredze ļauj saprast mērķa sasniegšanas procesu, bet nekad - nevis tās sasniegšanas rezultātu. Ir apšaubāmi, ka tuvākajā nākotnē parasti ir iespējams runāt par rezultātu, bet ir ļoti svarīgi, lai procesa censties par to būtu būtisks un objektīvi nepieciešams process.

"Vēlēšanās un / vai liela nauda" nerada algoritmu, ar kuru cilvēks var dabiski un "brīvi", it īpaši, ja viņš nedomā par to, ko viņš dara. Jebkurā informācijas problēmu pozīcijā ir vismaz viena balta plankumaina vieta, bet aiz tā, parasti tūlīt, ir redzamas citas tukšas plankumi, un tas nav obligāti, ka visi tie ir balti.

Interneta tehnoloģijas ievērojami atviegloja piekļuvi informācijai, bet jautājums - kā uzlikt vēlamo - netika vienkāršots, bet tika iegūti jauni "darba apjomi". Lai gan PHP regulārajās izteiksmēs šī atšķirība noteikti nav izsmelta, tās ir nozīmīgs solis uz priekšu.

Vienkāršas funkcijas + algoritms = veidne

Piedāvājot regulāras izteiksmes, PHP ievērojami samazina algoritma saturu, taču parasti atrastās meklēšanas / aizstāšanas funkcijas un apstrādes algoritmi nav zaudējuši savu vērtību. Jaunas idejas neuzrāda informācijas revolūciju. Maksimālā summa, uz kuras var paļauties, ir kompakts kods un izstrādātāja spēja pareizi formulēt meklēšanas vaicājumu.

Jums jāzina un jāpiemēro PHP regulāras izteiksmes. Šie piemēri ir pārliecinoši un efektīvi. Bet jāzina, ka ar jaunās meklētājprogrammas parādīšanos smaguma centrs ir pārcēlies uz veidni - sava veida mehānismu, lai gan faktiski tas aizvieto daudzas vienkāršas meklēšanas funkcijas, apstākļus, ciklus un citus operatorus.

Ir:

  • Labs un mūsdienīgs rīks ir labs;
  • Ir svarīgi redzēt un izmantot kolēģu pieredzi;
  • Apvienot reālo realitāti un virtuālās idejas - panākumu garantija.

Zināšanu sasniegšana, jo bija nepieciešams izprast problēmu, lai to atrisinātu, bieži ir vairāk nozīmīga nekā konkrēts rezultāts.

Parastās izteiksmes PHP tiek apzīmētas ar vairākām valodas sintakses funkcijām un daudziem noderīgiem piemēriem internetā. Sakarā ar valodas sintakses īpatnībām lietojumprogrammas iespējas ir ierobežotas tikai ar izstrādātāja iztēli, tomēr jāatzīmē, ka ne visas veidnes darbosies. Izmantojot PHP, ir svarīgi pārbaudīt regulārās izteiksmes.

Vienkārša rakstzīmes meklēšana (virkne)

Simbols ne vienmēr ir viens baits, un bieži vien simbols kā vienkāršs signāls papildus papildina precīzu nozīmi. Kodējums dažādos veidos definē koda redzamās rakstzīmes. Simbolam var būt vairākas iespējas: "$" = "USD" = "cu", ... ir precīza nozīme, kas kaut kur kaut kur, bet ne vienmēr ir tuvu, ir saistīta ar valūtu. Tomēr precīza nozīme var būt arī PHP mainīgajam, kas vienmēr sākas ar simbolu "$", bet to nevar sākt ar "USD" un "cu".

Programmās simbols var būt funkciju (virknes) nosaukums kontekstā: atpazīšana un izpilde ir no dinamiska objektorientēta programmēšanas apgabala, kur konstrukcijas, funkcijas, regulārās izteiksmes PHP tiek izmantotas tieši lēmumu pieņemšanai. Atrastais simbols ir "izpildīts", tas ir, pats pats nosaka, ko darīt vietā, kur tas tiek atrasts, un kā tas "uzskata to" par nepieciešamu.

Lai vienkārši meklētu rakstzīmi / virkni, nav tik vienkārša nodarbošanās, un jo vairāk informācijas ir simbolā, jo labāk. Ne vienmēr ir jāatrod ducis labāko pārtikas cenu, jāizvēlas gardas receptes brīvdienu kūlai vai jāpieņem līgumslēdzēja lēmums par apturētu griestu izmantošanu.

Bieži vien ir nepieciešams optimizēt vienkāršus algoritmus ar vienkāršu informācijas aritmētiku vai sarežģītos apstākļos, kad no datubāzes jāizvēlas vēlamais simbols un līnija, kurā tā jāatrod - simtiem vietņu. Šajā gadījumā simbola izvēles cena ir vienāda ar paraugu ņemšanas datumu no datubāzes un cena, kur meklēt, ir briesmīgo simtu vietņu meklēšanas laiks.

Atsevišķs simbols nav frāze vai dažas frāzes, tas var būt jebkur un ir tik mazs, cik vēlaties. Kā noteikt, kas tieši tiek atrasts, ko jūs meklējat?

Piemērs: cenu meklēšana

Tikai tekstā atrodiet simbolu "$" - nedaudz. Pārliecinieties, vai pirms tā ir cipars, ne vienmēr ir pietiekami. Ja norādāt punktu vai skaitli pirms simbola "$", tas ir garantija, ka cenas, kurās naudas simboli ir priekšā, netiks ņemtas vērā. Cenas arī tiks pazaudētas, kur valūta nav norādīta vispār, taču lapā ir nepārprotama norāde.

Parasti problēmas risinājums parastā veidā palielina algoritmu neatpazīstamības dēļ un prasīs daudz laika. Tajā pašā laikā, izmantojot regulāru izteiksmi, PHP skaits neradīs problēmas.

$ CContents = preg_match_all ("/ [0-9] + ((\ $) | usd | у \. E \. | Уе) {1} / i";

"Redzēt e-pastu - 2usd;
";
"Atrast e-pastu - 2e,
";
"Darba e-pasts - уе2;
";
"Pārbaudīt e-pastu - $ 13", $ aResult);
. "; " Implode (',', $ aResult [0]). '
'.

Atbilde ir: "2; 2usd, 2u.e.", bet rindā nekas netiks atrasts: "pārbaudīt e-pastu - 13 $".

Ja veidnē atrodas simbols priekšā vai aizmugurē, jūs varat ātri sasniegt mērķi lielākajā daļā gadījumu.

$ CContents = preg_match_all ("/ ([0-9] + ((\ \ $) | usd | у \. E \. | Уе) (1)) | (([$] | usd | у \ .э \. | Ye) {1} [0-9] +) / i ";
"Redzēt e-pastu - 2usd;
";
"Atrast e-pastu - 2e,
";
"Darba e-pasts - уе2;
";
"Pārbaudīt e-pastu - $ 13", $ aResult);
. "; " Implode (',', $ aResult [0]). '
'.

Rezultāts: "4; 2usd, 2e.e., ye2, 13 $".

Par nevēlamu loģiku

Regulārie izteicieni PHP piedāvā, tāpat kā citi rīki, taču nav nepieciešams tos izmantot saskaņā ar saviem noteikumiem vai izmantot citas sintakses nodrošinātās līniju funkcijas.

Pirms meklēšanas uzsākšanas jūs varat pārvērst meklējamo virkni masīvā un sadalīt to pēc iepriekšēja kritērija. Vienkāršs pāri eksplode () un implode () funkcijām bieži vienkāršo un paātrina risinājumu.

Piemēram, sākotnējā darba rezultātā ap rajonu ir izveidota virkne rindu (datu), par kuriem ciemiem katrs ciems ir savākti: Ciema nosaukums un iegūtā summa, un, ja ciematā ir vairāki uzņēmumi, tad uzņēmuma nosaukums atrodas masīvu virknē. " Un tā visiem uzņēmumiem. Šajā gadījumā nav iespējams aprēķināt kopējo summu, bet, ja jūs veicat impode (";", $ aResult), būs viena garā rinda, kurā pāri - Name Tree / Name Tree. Uzņēmuma nosaukums - savāktais apjoms - tiks norādīts ar ";". Pēc tam, kad esat pabeidzis reverse uz saņemto, eksplodēt (";", $ aResult) - masīvs no visiem, kas savākti un cik daudz tā savākti, tad, likvidējot visas ciparu rakstzīmes no līnijām, mums ir tikai cipari, kuru summa ir kopējais savākto apjomu.

Šajā piemērā PHP regulārie izteicieni ļauj jums nevajadzīgi meklēt, tie vienkārši un vienkārši iegūst vēlamās skaitliskās vērtības. Ātri un efektīvi, neatkarīgi no tā, cik ilgi ir ciematu un uzņēmumu nosaukumi. Šis lēmums nav ideāls, bet tas parāda, ka ne vienmēr ir jāievēro noteikumi. Bieži iespējams panākt vēlamo neparastā veidā.

Anotācijas no tehniskās puses, no kodēšanas

Algoritma sintakse nepasaka, kā tas patiesībā izskatās. Bet, nodrošinot tādu pašu lapas, skripta un līniju kodēšanu (kas tiek meklēti un kurā tiek veikta meklēšana), jūs varat iegremdēties uzdevumā ārpus tā tehniskās puses.

Ne tikai jāzina, ko meklēt, bet arī kur to izdarīt, kad, kādā daudzumā, ko mainīt un kā. Formāli regulāras PHP izteiksmes tiek izpildītas kā pilnīgs, pilnīgs, pilnībā funkcionējošs mehānisms, taču daudzu iemeslu dēļ dažādu valodu kolēģu īstenošana atšķiras. Parasti pirms tam, kad jūs varat pārsūtīt veidni uz konkrētu rīku vidi konkrētam uzdevumam, jums jāveic kvalitatīva pielāgošana, jāpārbauda visi iespējamie sākotnējo datu varianti.

Pat ja jūs izmantojat savu PHP izstrādes pieredzi, regulārām izteiksmēm, piemēriem, veidnēm un konstrukcijām ir nepieciešama rūpīga pārbaude. Valodas funkcionalitāte, tās sintakse un izpildes vide dinamiski mainās.

Veidnes struktūra un saturs

Kas agrāk tika uzrakstīts kā meklēšanas funkciju, nosacījumu operatoru, operāciju aizstāšana, ievietošana, dzēšana, kombinācija ir viena rakstzīmju virkne saskaņā ar noteiktiem noteikumiem - regulāru izteiksmju modelis. Faktiski ievērojams apjoms tiek kodēts stingri noteiktā veidā un tiek izpildīts saskaņā ar īpašiem noteikumiem.

Tāpat kā jūs nevarat atkārtot nevienu valodas paziņojumu, nevarat atkārtot regulāro izteiksmju modeli, šo procesu var tikai atdarināt. Parasti variants ir pieņemts: tas darbojas - tas nedarbojas. Sintakse ir ļoti vienkārša, lai gan tās uztvere, it īpaši darba sākumā, ir ļoti sarežģīta.

Vienkāršas izteiksmes piemērs

Vienkāršā versijā modelis atbilst līnijai:

$ CContents = preg_match ("/ asdf / i", "asdf", $ aResult). "; " Implode (',', $ aResult).

Rezultāts ir "1; asdf", jo funkcija pabeidz darbu pie modeļa pirmās spēles. Rezultāts būs tāds pats, ja izskatīsies rindā "aaaasdf" un rindā "zzzasdfvvv". Ja norādāt pirmo un / vai pēdējo rakstzīmi, rezultāts būs nepārprotams:

$ CContents = preg_match ("/ ^ asdf / i", "asdf", $ aResult). "; " Implode (',', $ aResult). '
';
$ CContents. = Preg_match ("/ asdf $ /", "asdf", $ aResult). "; " Implode (',', $ aResult). '
'.

Rezultāts būs: 1; Asdf1; Asdf.

Simboli "^" un "$" norāda, kur sākas veidne un kā tā beidzas. Preg_match funkcijas rezultāts ir atbilstības numurs, tas var būt 0, 1 vai false, ja tiek konstatēta kļūda. Trešais parametrs ir masīvs - vienīgais atrastais elements atrodas. Ja izmantojat preg_match_all () funkciju, meklēšana turpinās līdz līnijas beigām.

$ CContents = preg_match ("/ asdf / i", "asdf123asdf456asdf789", $ aResult). "; " Implode (',', $ aResult). '
';
$ CContents. = Preg_match_all ("/ asdf / i", "asdf123asdf456asdf789", $ aResult). "; " Implode (',', $ aResult [0]). '
'.

Rezultāts:

1; Asdf
3; Asdf, asdf, asdf.

Ja jūs neizmantojat īpašus norādījumus, katrs raksturs definē sevi un tā vietu, neatkarīgi no virknes kodējuma un veidnes kodēšanas. Programmētājam ir jānodrošina, lai šo elementu kodi būtu pareizi attiecībā pret otru un lapas kodējumu.

PHP funkcijas darbam ar regulārajām izteiksmēm

Regulāras izteiksmes PHP ir rakstzīmju virknes, kas rakstītas noteiktā veidā. Parasti pēc analoģijas ar citām programmēšanas valodām tie ir rakstīti ar burtiem "/" ... "/" un ievietoti citatos, atkarībā no algoritma, ko var izmantot vienotā un dubultā.

Galvenā php preg spēlēšanas regulāro izteiksmju funkcija tiek izmantota kā simbolu kombinācija un apstājas, kad pirmo reizi to konstatē, tā variants ar _all sufiksu meklē visas atbilstības un atgriež masīvu no tiem. Preg aizstāšanas funkcija aizstāj katru atbilstošo simbolu atbilstību, tā var strādāt ar masīviem, ļaujot jums izveidot meklēšanu un veikt dažādu iespēju aizstāšanu.

Interesantas iespējas strādāt ar regulārām izteiksmēm var tikt izstrādātas, izmantojot funkciju preg_replace_callback, kas neaizņem nekādu tekstu, bet funkciju nosaukumu, kas veic šādu aizstāšanu. Papildus praktiskajai vērtībai jūs varat ieviest veidņu validācijas mehānismus, kuriem ir svarīga nozīme pēdējo izstrādē un atkļūdošanā.

Regulāro izteiksmju apjoms

Tā kā hiperteksta valodas ir formalizēta informācija, tās vairāk ir avota materiāls. Liels skaits veidņu un dizainparaugu ir izstrādāti, lai efektīvi apstrādātu lielu informācijas daudzumu. Būtiska šī darba daļa tiek veikta ar dažādu satura vadības sistēmu (CMS) iebūvētiem mehānismiem.

Nav pārsteidzoši, ka daudzi CMS ir kļuvuši de facto standarti tīmekļa vietņu izveidei, un, to papildinot (atjauninot) attīstības uzņēmumi, tiem pašiem nav jāizstrādā veidnes. Tomēr ārpus šīm sistēmām, kam ir pieredze ar regulārām izteiksmēm, ir ļoti noderīga.

Regulāras izteiksmes un reāla informācija

Svarīga PHP regulāro izteiksmju izmantošanas joma ir PHPOffice bibliotēku parādīšanās. Darbs ar dokumentiem un izklājlapām vienmēr ir bijis un ir svarīgs, un OOXML standarts ļāva ne tikai izjaukt reālos dokumentus, bet arī tos programmēt.

Pateicoties hiperteksta un PHP attīstībai, pastāv reāla iespēja automatizēt "standarta formas" dokumentu "ražošanu", piemēram, maksājuma rēķinus, pārskatus, biznesa plānus un citus informācijas objektus, kuru struktūru un saturu var formalizēt un automatizēt.

Saistībā ar OOXML valodas apraksta lietojumu regulāro izteiksmju izstrādes procesā vispirms ir būtiskas atšķirības no tradicionālajiem darbiem ar iezīmēšanas valodām HTML un CSS. Patiesam dokumentam papildus atzīmei un papildus faktiskajam saturam ir daudz detaļu. Piemēram, programmā automātiski izveidotajam dokumentam būs stingrs un precīzs saturs. Dokumentā, ko veido persona vai ko apstrādā persona, saturs tiks ierakstīts tagu komplektā. Jebkurš darbs ar dokumentu noved pie tā, ka tā semantika var palikt vienā, bet iekšā krāsoti ar atšķirīgu skaitu dažādu dizainu.

Dabiska informācija un situācija

Persona vienmēr ir ieinteresēta problēmas risināšanā, kuras paziņojums ir informācija un kā rezultātā informācija tiks sniegta arī. Ievērojot problēmas izklāstu dokumenta formā, persona saņem noteiktu semantiku, ko speciālistu specifikācijas laikā (veicot izmaiņas, precizējot formulējumu, dzēšot, rediģējot) noved pie ne tikai daudziem viena dokumenta variantiem, bet arī versijām ar atšķirīgu saturu.

Jo īpaši uzdevums, ko rada frāze "Atrisināt kvadrātveida aizbēgt", pēc rediģēšanas nešķīsta šādi: "Atrisināt kvadrātvienādojumu". Ja vispirms tiek labota pirmā kļūda un pēc tam otrā, dabiskā informācija OOXML stilā var izskatīties šādi: "[atrisināt] [] [squarely] [e] [] [hurray] [in] [nenia]", bet tas nav Garantējiet, lai tas tiktu izskatīts uzdevumā OOXML tagos (kvadrātiekavas saskaņo tagu iekavas.)

Pēc katra uzdevuma rediģēšanas procesa varat viegli apkopot informāciju, taču katru reizi šī procedūra tiks veikta saskaņā ar citu algoritmu. Regulāras izteiksmes, kā sava veida instruments informācijas uzdevumu formalizācijai, patiesībā ir kļuvušas par ceļu no oficiālas hiperteksta struktūras uz dabisku informāciju.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 lv.birmiss.com. Theme powered by WordPress.