PHP Säännölliset lausekkeet kaikki paitsi. Hyödyllisiä säännöllisiä PHP: n lausekkeita

Säännöllisten lausekkeiden avulla voit löytää templaattia vastaavassa järjestyksessä. Esimerkiksi malli "Vasya (. *) -Putken avulla voit löytää järjestyksen, kun sanat Vasya ja Pupkin ovat mitä tahansa merkkiä. Jos haluat löytää kuusi numeroa, kirjoitamme "(6)" (jos esimerkiksi kuudesta kahdeksasta numerosta, sitten "(6,8)"). Tässä on jaettuja tällaisia \u200b\u200basioita symboli asetettu osoitin ja vaaditun määrän osoitin:

<набор символов><квантификатор><жадность>

Hahmojen sijasta voidaan käyttää merkkijonoa, mikä tahansa merkki - pistettä voidaan käyttää, voidaan määrittää tietty merkkijono (sekvenssejä tuetaan - "0-9"). Se voidaan ilmoittaa "paitsi tämä merkki".

Virallisessa PHP-dokumentaation merkkien merkkiä kutsutaan "Mitantifieriksi". Termi on kätevä eikä kuljeta kaarevia. Niinpä kvantifier voi olla sekä tietty arvo - joko yksi kiinteä ("(6)") tai numeerinen aikaväli ("(6,8)") ja abstrakti "mikä tahansa numero, sis. 0" ("*" ) "," Kaikki luonnolliset numerot "- 1: stä äärettömään (" + ":" dokumentti + .txt ")," joko 0 tai 1 "("? "). Oletuksena tämän merkkijonon kvantifiili on yhtä kuin yksi ("document.txt").

Joustavampi haku yhdistelmiä varten nämä niput "symbolit - kvantifier" voidaan yhdistää metastruktoihin.

Joustavana työkaluna säännölliset lausekkeet ovat taivutettuja, mutta eivät ehdottomasti: niiden soveltamisen vyöhyke on rajallinen. Jos esimerkiksi sinun on vaihdettava kiinteä rivi toiseen, kiinteä uudelleen, käytä STR_REPLACE-painiketta. PHP-kehittäjät kyyneltävästi becking eivät käytä tämän ereg_replacein tai preg_replacein tämän monimutkaisten toimintojen vuoksi, koska kun he kutsuvat heille, merkkijonon tulkinta tapahtuu, ja tämä kuluttaa järjestelmän resursseja. Valitettavasti tämä on sinun suosikki rake of Avicen PHP-ohjelmoijat.

Käytä säännöllisiä ilmaisuja vain, jos et tiedä tarkalleen mitä "siellä" rivi. Esimerkeistä: hakukoodi, jossa huoltomerkit ja lyhyet sanat leikataan hakujonoista sekä ylimääräisistä tiloista (tai pikemminkin kaikki tilat pakataan: "+" korvataan yhdellä tilalla). Näiden toimintojen avulla tarkistan sähköpostitse käyttäjä, joka lähtee palautteesi. Monet hyödylliset voidaan tehdä, mutta on tärkeää pitää mielessä: säännölliset lausekkeet eivät ole kaikkivaltias. Esimerkiksi monimutkainen korvaaminen suuressa tekstissä on parempi olla tekemättä. Loppujen lopuksi esimerkiksi ohjelmasuunnitelmassa oleva yhdistelmä "(. *) 'Tarkoitetaan kaikkien tekstimerkkien rintakehää. Ja jos malli ei ole sidoksissa linjan alkuun tai päähän, ohjelman malli "liikkuu" koko tekstin kautta, ja se muuttuu kaksinkertaisen raa'an voiman tai melko raa'an voiman neliöön. Ei ole vaikea arvata, että toinen yhdistelmä "(. *)" Tarkoittaa rintakehää Kuubassa ja niin edelleen. Ota kolmas tutkinto, sano, 5 kilobyte-tekstiä. Se osoittautuu 125 000 000 000 (sanoin: sata kaksikymmentäviisi miljardia toimintaa). Tietenkin, jos lähestytte tiukasti, on niin paljon toimintoja, ja se on neljä tai kahdeksan kertaa vähemmän, mutta numeron määrä on tärkeä.

Merkkejä

. kohtamikä tahansa symboli
[<символы>] square-kiinnikkeetmerkkiluokka ("mikä tahansa"). esimerkiksi
[^<символы>] negatiivinen symboliluokka ("Kuka tahansa paitsi")
- viivasekvenssin nimeäminen merkkiluokassa ("" - numerot)
\\ D. Vain numerot
\\ D.[^0-9] Numeron lisäksi
\\ W. Kirjaimet ja numerot
\\ W.[^ a-z0-9]Paitsi kirjaimet ja numerot
S. Sokeat symbolit: tila, välilehti, rivinsiirto
S.[^ ] Globulaaristen symbolien lisäksi
| (yksi | muut)Tässä paikassa voi olla yksi luetelluista vaihtoehdoista, esimerkiksi: Vasya | Peter | Masha). Jos et halua, että pääset näyteeseen, käytä (?: ...)

Älä käytä symboliluokkaa, jos haluat nimetä vain yhden ("+" sijasta "+"). Älä kirjoita pistettä symboliluokassa - tämä on merkki, niin luokassa olevat muut merkit ovat yksinkertaisesti tarpeetonta (ja negatiivisessa luokassa, se kieltäytyy kaikkiin merkit).

Kvantitiari

Mitantifieri voidaan määrittää tiettyyn arvona ja rajoiksi. Jos määritettyjen putousten määrä kvantifierin alla ilmaisun fragmentti katsotaan samanaikaisesti rikki merkkijonon kanssa. Syntaksi:

{<количество> }

{<минимум> , <максимум> }

Jos sinun on määritettävä vain tarvittava vähimmäismäärä, mutta enimmäismäärää yksinkertaisesti laitat pilkut ja eivät kirjoita toista numeroa: "(5,)" ("Vähintään 5"). Useimmiten käytetyistä kvantifioimista on erityisiä nimikkeitä:

Käytännössä tällaisia \u200b\u200bmerkkejä käytetään useammin kuin kiharat.

Ankkuri.

Näiden merkkien on oltava vastaavasti hyvin alussa ja lopussa linjan.

Ahneus

Kysymysmerkki näkyy myös Mitantifierin minimisaattorina:
.*?

$1"$ Re1 \u003d" | \\ (. *) \\ | Ixs "; $ re2 \u003d" | \\ (. *?) \\ | Ixs "; $ tulos \u003d preg_replace ($ re1, $ ja $ st); echo" Greedy-versio: ".htmlspecialchars ($ tulos, ," Windows-1251 ")."
"; $ tulos \u003d preg_replace ($ re2, $ ja $ str); echo" laiska versio: ".htmlspecialchars ($ tulos, ," Windows-1251 ")."
";?\u003e Esimerkin tulos: ahne versio: rasva teksti [B] ja täällä - vielä enemmän rasvaa palautettiin Lazy versio: rasva teksti [B] ja täällä - vielä suurempi Palautettu

Templaatin merkkijono, kuten olet huomannut, alkaa ja päättyy vierolla. Toisen parametrien jälkeen seuraa:

i.rekisteröidy riippuvainen haku
m.

monilinjan tila. Oletusarvoisesti PCRE etsii sattumuksia mallissa vain saman linjan sisällä ja merkit "^" ja "$" ovat samat vain tekstin alku ja loppu. Kun tämä parametri on asetettu, "^" ja "$" samaan aikaan yksittäisten linjojen alku ja loppu.

s.symboli "." (Point) Yhdistää linjansiirron (oletus - ei)
A.sitova tekstin alkuun
E.aiheuttaa "$" -merkin vain tekstin loppuun. Ohita, jos Paramert M on asennettu.
U.Jokaisen kvantifierin kohdalla "ahneus" (jos kvantifierin kustannusten jälkeen "?" Tämä kvantifiili lakkaa olemasta "ahne").
e.Korvaava merkkijono tulkitaan PHP-koodiksi.

Toiminnot säännöllisten ilmaisujen käsittelyyn

  • preg_grep
  • preg_match - suorittaa säännöllisen lausekkeen tarkistuksen. Tämä ominaisuus etsii vain ensimmäistä sattumaa!
  • preg_match_all.
  • preg_quote - suojaa merkkejä säännöllisissä ilmaisuissa. Nuo. Asettaa viivan kaikkiin huoltosymboleihin (esim. Kiinnikkeet, neliökannattimet jne.) Näin ne kirjaimellisesti havaitut. Jos sinulla on käyttäjätietoja, ja tarkistat sen säännöllisillä lausekkeilla, niin on parempi näyttää palvelun merkkiä lähetetyssä muuttujassa
  • preg_replace
  • preg_replace_callback - suorittaa haun säännöllisesti ilmaisulla ja korvaamalla
  • preg_split.

preg_grep

Toiminto preg_grep - Palauttaa mallin mukaisia \u200b\u200btapahtumia

Syntaksi

array. preg_grep (String kuvio, array-tulo [, int liput])

preg_grep () palauttaa taulukon, joka koostuu tulevan syöttöryhmän elementeistä, joka vastaa määritettyä kuviotapaa.

Liput parametri voi ottaa seuraavat arvot:

Preg_grep_invert.
Jos tämä lippu on asetettu, Preg_grep () -toiminto palauttaa array-elementit, jotka eivät vastaa määritettyä kuviomallia.
Preg_grep () -toiminnon palauttama tulos käyttää samoja indeksejä kuin valikoima lähdetietoja. Jos tämä käyttäytyminen ei ole sopiva, käytä Array_Value () Preg_grep () palauttamaan taulukkoon.
Näytekoodi:

// palauttaa kaikki taulukon elementit, //, joka sisältää kelluvan pisteen numerot $ fl_array \u003d preg_grep ("/ ^ (\\ d)? \\. \\ D + $ /", $ Array);

preg_match

Toiminto preg_match - Suorittaa säännöllinen lauseke

Syntaksi

int. preg_match (String kuvio, String Aihe [, Array Ottelut [, INT FLAMPS [, INT OFFSET]]] Etsi määritetyn tekstin aihepiirin mallimalle

Siinä tapauksessa, että lisämahdollisuus parametri on määritetty, se täytetään hakutuloksilla. $ Matches -elementti sisältää osan koko mallin, $ otteluista - osa merkkijonoa, joka vastaa ensimmäistä sukellusveneikkaa ja niin edelleen.

liput voivat olla seuraavat arvot:

Preg_offset_capture.

Haku toteutetaan vasemmalta oikealle, linjan alusta. Valinnaista offset-parametria voidaan käyttää ilmaisemaan vaihtoehtoinen lähtöasema haussa. Samankaltainen tulos voidaan saavuttaa korvaamalla aihe substr () ($ aihe, $ offset).

Preg_match () -toiminto palauttaa vaatimustenmukaisuuden määrän. Tämä voi olla 0 (ei löytynyt sattumaa) ja 1, koska preg_match () pysäyttää työnsä ensimmäisen löydetyn sattuman jälkeen. Jos haluat löytää tai laskea kaikki sattumukset, sinun on käytettävä preg_match_all () -toimintoa. Preg_match () -toiminto palauttaa väärän, jos suorituksen aikana on tapahtunut virheitä.

Suositus: Älä käytä Pregg_match () -toimintoa, jos sinun on tarkistettava substringin läsnäolo tietyllä rivillä. Käytä tätä STRPOS () tai STRSTR (), kun ne täyttävät tämän tehtävän paljon nopeammin.

Näytekoodi

Näytekoodi

Näytekoodi

Esimerkin tulos:

verkkotunnus on: sivusto

preg_match_all.

Toiminto preg_match_all. - Suorittaa Global Template -haku merkkijonossa

Syntaksi

int. preg_match_all. (String kuvio, String Aihe, Array Ottelut [, Int liput [, INT Offset]])

Etsitkö kaikkia sattumuksia, joissa on kuvion mallipohja, ja tuo tuloksen otteluihin, jotka määräytyvät lippujen lippujen yhdistelmällä.

Ensimmäisen noudattamisen löytämisen jälkeen seuraavat haut toteutetaan linjan alusta, vaan viimeisen löydöntulon päättymisestä.

Muita lippuja parametri voi yhdistää seuraavat arvot (on tarpeen ymmärtää, että Preg_Pattern_orderin käyttäminen samanaikaisesti preg_set_orderin kanssa merkityksettömästi):

Preg_pattern_order.
Jos tämä lippu on asennettu, tulos tilataan seuraavasti: $ Matches Elementti sisältää mallin täydellisiä merkintöjä, $ otteluelementti sisältää joukon ensimmäiselle Podmaskos, ja niin edelleen.

Näytekoodi

]+>(.*)] +\u003e | U "," esimerkki:
tämä on testi
", $ Out, preg_pattern_order); echo $ ulos.", "$ Out." \\ n "; Echo $ Out.", ". $ Out.";?\u003e Esimerkin tulos: esimerkki:,
tämä on testi
Esimerkki: Tämä on testi

Kuten näemme, $ Out sisältää mallin täydellisiä merkintöjä, ja $ Out -elementti sisältää tagien sisältämän alussuunnittelun.

Preg_set_order
Jos tämä lippu on asennettu, tulos tilataan seuraavasti: $ Matches -elementti sisältää ensimmäiset esiintymiset, $ otteluelementti sisältää toisen esiintymän ja niin edelleen.

Näytekoodi

]+>(.*)] +\u003e | U "," esimerkki:
tämä on testi
", $ Out, preg_set_order); echo $ ulos.", ". $ Out." \\ N "; Echo $.", "$ Out.";?\u003e Esimerkin esimerkin tulos: esimerkki:, Esimerkki:
tämä on testi
, Tämä on testi

Tällöin joukko $ otteluita sisältää ensimmäiset tapahtumat, nimittäin: $ Matches Elementti sisältää koko mallin ensimmäisen merkinnän, $ ottelut elementti sisältää ensimmäisen merkinnän ensimmäisen merkinnän ja niin edelleen. Vastaavasti joukko $ otteluita sisältää toisen esiintymisryhmän, joten jokaiselle löysi.

Preg_offset_capture.
Jos tämä lippu on määritetty, sen sijainti lähdeviivassa ilmoitetaan jokaiselle löydelle. On muistettava, että tämä lippu muuttaa palautustietojen muotoa: jokainen merkintä palaa ryhmänä, nollaelementtiin, jonka alustaan \u200b\u200blöytyy, ja ensimmäisessä siirtymässä.

Jos lippua ei käytetä, oletusarvo on preg_pattern_order.

Haku toteutetaan vasemmalta oikealle, linjan alusta. Valinnaista offset-parametria voidaan käyttää ilmaisemaan vaihtoehtoinen lähtöasema haussa. Samankaltainen tulos voidaan saavuttaa korvaamalla aihe substr () ($ aihe, $ offset).

Palauttaa mallin löydettyjen merkintöjen (voi olla nolla) tai vääriä, jos suorituksen aikana on tapahtunut virheitä.

Näytekoodi

Näytekoodi

lihavoitu teksti.klikkaa minua."; preg_match_all (" / (<([\w]+)[^>]*>)(.*)(<\/\\2>) / ", $ Html, $ ottelut); varten ($ i \u003d 0, $ i< count($matches); $i++) { echo "matched: " . $matches[$i] . "\n"; echo "part 1: " . $matches[$i] . "\n"; echo "part 2: " . $matches[$i] . "\n"; echo "part 3: " . $matches[$i] . "\n\n"; } ?> Esimerkin tulos: sovitettu: lihavoitu teksti. Osa 1: Osa 2: Lihavoitu teksti osa 3: Sovitettu: klikkaa minua. Osa 1: Osa 2: Napsauta minua osa 3:

preg_quote

Toiminto preg_quote - Shields Symbolit säännöllisissä ilmaisuissa

Syntaksi

merkkijono preg_quote (String Str [, String Delimeter])

Preg_quote () -ominaisuus ottaa merkkijonon ja lisää päinvastaisen asetuksen ennen kunkin palvelun merkkiä. Tämä on hyödyllistä, jos merkkijonot ovat mukana mallin suunnittelussa, jonka arvo komentosarjan käytön aikana voi muuttua.

Jos ylimääräinen erottimen parametri on määritetty, se on myös suojattu. Tämä on kätevä rajoitin, jota käytetään PCRE-toiminnoissa. Yleisin rajoitin on symboli "/".

Säännöllisissä ilmaisuissa seuraavat symbolit pidetään palveluna :. \\\\ + *? [^] $ () () \u003d!< > | :

Näytekoodi

Näytekoodi

"$ Word".", $ Textbody); echo $ Textbody;?\u003e Esimerkin tulos: Tämä kirja on * Hyvin * Vaikea löytää.

preg_replace

Toiminto preg_replace - Etsi ja korvaa säännöllinen lauseke

Syntaksi

sekoitettu. preg_replace (Sekoitettu kuvio, sekalainen korvaaminen, sekalainen aihe [, int raja])

Haut hakuja kuviomallin otteluissa ja korvaa ne korvaamiseen. Siinä tapauksessa, että raja-parametri on määritetty, mallilaitteen raja-arvo korvataan; Jos raja alennetaan joko yhtä suuri kuin -1, kaikki mallin merkintä vaihdetaan.

Korvaus voi sisältää viittauksia tyypin n tai (alkaen PHP 4.0,4) $ n, ja viimeinen vaihtoehto on edullinen. Jokainen tällainen viittaus korvataan alustaan, joka vastaa N "-suurua, joka on suljettu pyöreissä kannattimissa. N voi ottaa arvoja 0 - 99 ja viite \\\\ 0 (tai $ 0) vastaa koko mallin merkintää. Podmas Maskit on numeroitu vasemmalta oikealle, alkaen yhdestä.

Kun käytät mallia korvaamista käyttämällä viittauksia huomautuksiin, voi esiintyä tilannetta, kun numeroa noudatetaan suoraan maskille. Tällöin lomakkeen numero on virhe virhe: Viittaus ensimmäiseen sukellusveneen, jota seuraa numero 1, tallennetaan \\\\ 11, joka tulkitaan viittaukseksi yhdestoista sukellusveneelle. Tämä väärinkäsitys voidaan eliminoida, jos käytät $ $ (1) 1, mikä osoittaa eristetyn viittauksen ensimmäiseen sukellusveneen ja numero 1 seuraa sitä.

Näytekoodi

Tämän esimerkin tulos on:

Jos toiminnon suorittamisen aikana havaittiin yhteensä mallia, modifioitu subcektiarvo palautetaan, muuten lähdekoodin aihe palautetaan.

Preg_replace () -funktion kolme ensimmäistä parametria voi olla yksiulotteisia ryhmiä. Jos taulukko käyttää näppäimiä, kun käsittelet taulukkoa, ne otetaan järjestyksessä, jossa ne sijaitsevat taulukossa. Näppäinten määrittäminen kuvioon ja korvaamiseen ei tarvita. Jos olet vielä päättänyt käyttää indeksejä, vastaamaan malleja ja rivejä, jotka osallistuvat korvaukseen, käyttävät ksort () -toimintoa kullekin ryhmille.

Karhu musta hidas hyppäsi laiskan koiran yli.

Ksort (), saamme halutun tuloksen:

Hidas musta karhu hyppäsi laiskan koiran yli.

Jos aiheen parametri on ryhmä, haku ja korvaaminen mallipohjasta tehdään jokaiselle tuotteelle. Paluutulos on myös ryhmä.

Siinä tapauksessa, että kuvio ja korvaavat parametrit ovat taulukot, preg_replace () vuorotellen otteita molemmista ryhmistä elementtien avulla ja käyttää niitä haku- ja vaihto-operaatioon. Jos korvaava ryhmä sisältää enemmän elementtejä kuin kuvio, tyhjät viivat otetaan puuttuvien kohteiden sijasta. Jos kuvio on taulukko, ja korvaaminen on merkkijono kutakin kuviotaukon elementtiin, kuvion haku ja vaihto suoritetaan (kaikki taulukon elementit ovat vuorotellen, kun taas korvaava viiva pysyy kiinteänä ). Vaihtoehto, kun kuvio on merkkijono ja korvaaminen on taulukko, se ei ole järkevää.

The / e-modifioija muuttaa preg_replace () -toiminnon käyttäytymistä siten, että korvaava parametri tarvittavien substituutioiden suorittamisen jälkeen tulkitaan PHP-koodiksi ja vain sen jälkeen, kun sitä käytetään korvaamaan. Tämän modifiointimen käyttäminen on varovainen: korvaavan parametrin on sisällettävä oikea PHP-koodi, muuten merkkijonossa, joka sisältää PREX_replace () -toiminnon parametreja, syntaksivirhe tapahtuu.

Näytekoodi: Vaihto useita malleja

Tämä esimerkki tuo esiin:

$ startDate \u003d "5/27/1999";

Näytekoodi: Modifer / E: n käyttäminen

] *\u003e) / E "," "\\\\ 1" .strtorup ("\\\\ 2"). "\\\\ 3" ", $ html_body) ;?\u003e

Näytekoodi: muuntaa kaikki HTML-tunnisteet alkuun

]*?>.*?"Si", // leikkaa JavaScript ""<[\/\!]*?[^<>] *?\u003e "Si", // leikkaa HTML-tunnisteet "" ([\\ n]) [\\ s] + "", // leikkaa tilan merkkien "" & (quot # 34); "i" , // korvaa HTML-yksiköt "" & (amp | # 38); "I", "" & Lt | # 60); "I", "" & (GT | # 62); "I", "" & Nbsp | # 160); "i", "" & (ixcl | # 161); "I", "," "& (Cent | # 162);" I "," "& (Pound | # 163);" "," "& (Kopioi | # 169);" I "," "(\\ D +);" E "); // tulkitse PHP-koodiksi $ korvaava \u003d array ("", "", "\\\\ 1", "\\" ",", ","<", ">"," ", CHR (161), CHR (162), CHR (163), CHR (169)," CHR (\\\\ 1) "); $ Text \u003d preg_replace ($ haku, $ korvaa, $ dokumentti); ?\u003e.

preg_replace_callback

Toiminto preg_replace_callback - Haetaan säännöllistä lauseketta ja korvaamista soittopyynnön avulla

Syntaksi

sekoitettu. preg_replace_callback (Sekoitettu kuvio, soittopyyntö, sekoitettu aihe [, int raja])

Tämän toiminnon käyttäytymistä muistutetaan suurelta osin preg_replace (), paitsi että korvaavan parametrin sijaan sinun on määritettävä soittopyyntö, jonka mukaan löydetyt merkinnät lähetetään saapuvana parametrina. Odotettu tulos on merkkijono, joka korvataan.

Näytekoodi

\\ t * " Echo $ linja;) fclose ($ fp);?\u003e

preg_split.

Toiminto preg_split. - rikkoo merkkijonon säännöllisesti ilmaisulla

Syntaksi

array. preg_split. (String kuvio, String Aihe [, INT LIMIT [, INT FLAGS]])

Palauttaa taulukon, joka koostuu määritetyn kohteen merkkijonon alustasta, joka jaetaan kuviomallin mukaisilla rajoilla.

Jos raja-parametri on määritetty, toiminto palaa enempää kuin raja-alustaan. Erityisraja-arvo, joka on yhtä suuri kuin -1, merkitsee rajoituksen puutetta, on erittäin hyödyllistä toisen valinnaisen lipun parametrin määrittämiseksi.

Liput voivat olla mielivaltainen yhdistelmä seuraavista liput (yhteys tapahtuu operaattorin "|" kanssa):

Preg_split_no_empty
Siinä tapauksessa, että tämä lippu on määritetty, preg_split () -funktio palauttaa vain ei-tyhjä substring.

Preg_split_delim_capture.
Siinä tapauksessa, että tämä lippu on määritetty, erotuskuvion sulkeissa suljettu ilmentyminen poistetaan myös määritetystä rivistä ja palaa toimintoon. Tämä lippu lisättiin PHP 4.0.5.

Preg_split_offset_capture.
Jos tämä lippu on määritetty, sen sijainti alkuperäisessä viivyksessä määritellään jokaiselle alustodistukselle. On muistettava, että tämä lippu muuttaa palautustietojen muotoa: jokainen merkintä palaa ryhmänä, nollaelementtiin, jonka alustaan \u200b\u200blöytyy, ja ensimmäisessä siirtymässä.

Esimerkkejä koodista

Siinä tapauksessa, että seuraavan pyöreän kannattimen jälkeen ?: ", String Capture ei tapahdu, ja nykyistä itase ei ole numeroitu. Esimerkiksi jos" White Queen "-rivi on kartoitettu (((?: punainen | valkoinen) malliin (kuningas | Queen)) "Valkoinen kuningatar" ja "kuningatar", ja ne numeroidaan 1 ja 2, vastaavasti:

$ r \u003d "/ the (?: punainen | valkoinen) (kuningas queen)) /"; 0 \u003d "valkoinen kuningas"; 1 \u003d "valkoinen kuningas"; 2 \u003d "kuningas";

Lisätietoja säännöllisistä ilmaisuista:


Säännölliset ilmaisut Tarkista palvelut:


Lue lisää: Kirjasto Kiemura PHP: ssä.
.

Säännölliset lausekkeet ovat erittäin hyödyllinen työkalu kehittäjille. Säännöllisten lausekkeiden avulla voit tarkistaa tekstin oikeellisuuden, etsiä ja muuttaa sitä.
Tässä artikkelissa on joitain erittäin hyödyllisiä ilmaisuja, joiden kanssa sinulla on usein työskennellä.

Johdatus säännöllisiin lausekkeisiin

Kun tutusit säännöllisiin ilmaisuihin, voi näyttää olevan vaikea ymmärtää ja soveltaa. Itse asiassa kaikki on helpompaa kuin näyttää. Ennen kuin jatkat monimutkaisia \u200b\u200besimerkkejä, analysoimme säätiöt:

Toiminnot, jotka työskentelevät säännöllisten lausekkeiden kanssa PHP: ssä

Verkkotunnuksen tarkistus

Tarkista oikea verkkotunnus.

$ url \u003d "http://example.com/"; Jos (preg_match ("/ ^ \u003d http | htttp | ftp)): // (* (? :: *) +) :? ():? /? / I", $ URL)) (ECHO "OK". ;) Muu (echo "väärä URL.";)

Sanavalot tekstissä

Erittäin hyödyllinen säännöllinen lauseke. Tule kätevä hakuun.

$ Text \u003d "Esimerkki Statence, REGEX on tullut suosittu web-ohjelmointiin. Nyt opimme REGEX. Wikipedian mukaan säännölliset lausekkeet (lyhennetty REGEX tai REGEXP, WIT PRAL Forms REGEXES, REGEXPS tai regexen) on kirjoitettu virallisessa kielessä Säännöllinen ilme prosessori voi tulkita säännöllisesti "; $ Text \u003d preg_replace ("/ b (regex) b / i", " 1", $ Text); echo $ Text;

Hae hakutulokset WordPress

Kuten jo mainittiin, edellinen esimerkki on erittäin hyödyllinen. Käytä sitä WordPressiin. Avaa tiedosto haku.php, Etsi toiminto otsikko (). Korvaa se seuraavasti:

Echo $ otsikko;

Aseta nyt koodi ennen tätä merkkijonoa:

\0", $ otsikko);?\u003e

Avaa tiedosto style.css.. Lisää siihen merkkijono:

Strong.Search-Excerpt (tausta: keltainen;)

Hanki kaikki kuvat HTML-asiakirjasta

Jos sinun on löydettävä kaikki HTML-sivun kuvat, sinulla on käyttökelpoinen seuraava koodi. Sen avulla voit helposti luoda kuvakuormaajan.

$ kuvat \u003d array (); preg_match_all ("/ (img | src) \u003d (" | ") [^"\u003e] + / i ", $ data, $ media); Unset ($ tiedot); $ data \u003d preg_replace ("/ (img | src) (" | "| \u003d" | \u003d ") (. *) / I", "$ 3", $ Media); Foreach ($ Data kuin $ URL) ($ info \u003d pathinfo ($ URL); jos (Isset ($ INFO ["laajennus"]) (jos (($ info ["laajennus"] \u003d\u003d "JPG") || ($ info ["laajennus"] \u003d\u003d "JPEG") || ($ info ["laajennus"] \u003d\u003d "gif") || ($ info ["laajennus"] \u003d\u003d "png") array_push ($ Kuvat, $ URL);))

Toistuvien sanojen poistaminen (rekisteristä riippumatta)

$ Text \u003d preg_replace ("/ s (w + s) 1 / i", "$ 1", $ Text);

Toistuvien välimerkkien poistaminen

Se näyttää edelliseltä, vain poistaa välimerkit.

$ Text \u003d preg_replace ("/.+/ i", ".", $ Text);

XML / HTML-tunniste

Yksinkertainen ominaisuus, joka ottaa kaksi argumenttia: löytyy tunniste ja merkkijono, jossa on XML tai HTML.

Toiminto get_tag ($ tag, $ xml) ($ tag \u003d preg_quote ($ tag); preg_match_all ("(" (<".$tag."[^>]*>(.*?). ")", $ Xml, $ ottelut, preg_pattern_order); Palauta $ ottelut;

XML / HTML-tunnisteen löytäminen tiettyyn attribuutin arvoon

Toiminto on samanlainen kuin edellinen, mutta kyky määrittää tag-attribuutti. Esimerkiksi:

.

Function get_tag ($ att, $ arvo, $ xml, $ tag \u003d nolla) (jos (is_Null ($ tag)) $ tag \u003d "\\ w +"; muu $ tag \u003d preg_quote ($ tag); $ atret \u003d preg_quote ( $ Attra); $ arvo \u003d preg_quote ($ arvo); $ tag_regex \u003d "/<(".$tag.")[^>] * $ Atret \\ s * \u003d \\ s * "([" \\ "]) $ Arvo \\\\ 2 [^\u003e] *\u003e (. *?)<\/\\1>/ "preg_match_all ($ tag_regex, $ xml, $ ottelut, preg_pattern_order); palaa $ otteluihin;)

Heksadesimaalikoodien löytäminen

Toiminnon avulla voit etsiä tai tarkistaa heksadesimaalisten värikoodien oikeellisuuden.

$ string \u003d "# 555555"; Jos (preg_match ("/ ^ # (? :(? :( 3)) (1,2)) $ / I", $ string)) (echo "esimerkki 6 onnistunut.";)

Otsikkosivun löytäminen

Tämä koodi löytää ja näyttää tekstin tunnisteiden välillä </i> ja <i> HTML-sivuja.

$ FP \u003d Fopen ("http://www.catwhocode.com/blog", "R"); Vaikka (! FEOF ($ FP)) ($ sivu. \u003d Fgets ($ fp, 4096);) $ Titre \u003d Eregi (" (.*)", $ Sivu, $ regs); echo $ regs; fclose ($ fp);

Apache Logs Parsing

Monet sivustot toimivat Apache Web -palvelimella. Jos sivusto toimii myös tactop-palvelimella, niin seuraavat säännölliset säännöllisyydet voivat olla hyödyllisiä.

// lokit: Apache Web Server // onnistunut pääsy HTML-tiedostoihin. Hyödyllistä laskea sivuja. "^ ((? # Client IP tai verkkotunnus) S +) S + ((? # Perus todennus) S + S + S +) S + [((? # Päivämäärä ja kellonaika) [^]] +)] s + "(?: Get | Post | Head) (((? #File) / [^?"] +? "HTML?) ?? ((?" Parametrit) [^? "] +)? Http / + "s + (? # Status koodi) 200S + ((? # Tavut siirretään) [- 0-9] +) S +" ((? # Viittaus) [^ "] *)" S + "(( ? # Käyttäjän agentti) [^ "] *)" $ "// lokit: Apache Web Server // 404 virheet" ^ ((? # Asiakas IP tai verkkotunnus) S +) S + ((? # Perustodennus) S + S + S +) S + [((? #Date ja aika) [^]] +)] S + "(?: Get | Post | Head) (((? #File) [^?"] +) ?? ((? # Parametrit) [^? "] +)? Http / + "s + (? # Tilaakoodi) 404s + ((((? # Bytes siirretään) [- 0-9] +) S +" ((? # Referrer) [^ "] *)" S + "( (? # Käyttäjän agentti) [^ "] *)" $ ")

Korvataan kaksinkertaiset lainausmerkit

preg_replace ("b" b ([^ "x84x93x94rn] +) b" b ","? 1? ", $ Text);

Salasanan monimutkaisuuden tarkistaminen

Tämä säännöllinen ilmaisu tarkistaa kohteiden merkkijonon: merkkijonon on sisällettävä vähintään 6 kirjainta, numeroa, alaviivoja ja viiva. Merkkijonon on sisällettävä vähintään yksi iso kirjain, pienet ja numerot.

"A (? \u003d [-_ A-ZA-Z0-9] *?) (? \u003d [-_ A-ZA-Z0-9] *?) (? \u003d [-_ A-ZA-Z0-9] *?) [-_a-za-z0-9] (6,) z "

WordPress: Post-kuvien hankkiminen säännöllisesti ilmaisulla

Jos käytät WordPressia, voit käyttää toimintoa, joka saa kaikki kuvat postilta ja näyttää ne. Jos haluat käyttää tätä koodia, kopioi se teeman tiedostoihin.

post_content; $ szsearchpattern \u003d "~ ] * /\u003e ~ "; Count ($ apecs), jos ($ InumberofPics\u003e 0) (// Newer tekisit mitä haluat tehdä kuvien kanssa, näytetään vain ($ i \u003d 0, $ i< $iNumberOfPics ; $i++) { echo $aPics[$i]; }; }; endwhile; endif; ?>

Muuntaminen hymyillä kuvissa

Tämä ominaisuus on myös WordPressissä, voit vaihtaa automaattisesti tekstin hymyilee kuviin.

$ Texte \u003d "Teksti, jolla on hymiö :-)"; Echo str_replace (":-)", " ", $ Texte);

Säännölliset ilmaisut, se on erittäin voimakas, mutta samalla vaikeaa ymmärtää, rivin käsittelytyökalu. Kuvailen kohokohtia. Säännöllinen ilme on merkkijono. Tällä mallilla voit hakea merkintää, korvaa, tarkistaaksesi mallin noudattamisen.

Säännöt Piirustusmalli (kuvio)

Mallin rajat on merkitty tietyillä merkkeillä, usein " / ", mutta haluan käyttää" # "Koska suoria / käänteisiä laattoja voidaan ravistaa silmiin, ja" ristikkoja "ei yleensä käytetä minnekään. Joten:" # Turnoregorenaging #"

Sisäiset lausekkeet, kiinnikkeet käytetään - tämä on lähetys, jolla manipulointi voidaan suorittaa. Esimerkki:

# ^ / Catalog / (+) / (+) \\. HTML. * #

Tämä lauseke on tarkoitettu parametreihin merkkijonossa Url. Linjan alussa on asiantuntija " ^ "- Tämä tarkoittaa linjan alkua. Seuraavaksi tulee" / Luettelo /"" Ei ole erikoisuutta, se on vain teksti, joka pitäisi olla linjassa. Sitten he tapasivat pyöreitä kiinnikkeitä eli saavutti ensimmäisen lähetyksen. Suljeissa on monia merkkejä, jotka voivat olla peräkkäin tässä paikassa. " - "Tarkoittaa listausta." Sign " \ "Erikoismerkkejä. Näin ollen ensimmäisessä alakohdassa voimme kävellä suuria ja pieniä kirjaimia latinalaisia \u200b\u200baakkoset, numerot 0 - 9, merkki alaviivasta, viivasta ja pisteestä. Dash ja kohta ovat asiantuntija, mutta täällä ovat suojattuja, joten tämä on täällä. Vain merkit. Kun neliökannattimet ovat merkki " + "- Tämä tarkoittaa, että edellinen symboli (ja meillä on paljon merkkejä, jotka on määritelty neliökiinnikkeissä), voivat mennä 1 tai useammin. Sitten menee / "Se on vain symboli ja samanlainen toinen lähetys. Sitten menee" \\ .html.", Mitä teksti tarkoittaa" .html.". Ja sitten erikoismerkkejä" .* "Kohta tarkoittaa mitä tahansa luonnetta ja tähdellä mitä tahansa edellisen symbolin määrää. Nämä. Jälkeen" .html."Voi mennä mitään.

Midentifiereiden määrä

Edellä, olemme jo pitäneet tällaisia \u200b\u200bsymboleja, jotka osoittavat edellisten merkkien määrän + ja * . Annamme kaiken mahdollisuuden määrittää määrän:

Erikoismyllit

Joillakin hahmojen ryhmille on erityisiä leikkauksia:

"Ahneus"

Harkitse säännöllisen ilmaisun ahneutta. Esimerkiksi on merkkijono:

#()#

Lue: Vaikutus:

Onneksi kaikki on totta, lähetys sopii:

Mutta se kuuluu myös:

Saan sen, koska Säännölliset lausekkeet oletusarvoisesti "ahne". Voit poistaa ahneuden modifiointimen avulla " U.", kuten tämä:

#() #U.

Modifikaattorit

Säännöllisen ilmaisun jälkeen modifioijat voivat mennä: " # TurnoreToregull"Muokkaajat:

i. Lisää tapauskohtainen tila, ts. Suuret ja pienet kirjaimet ilmaisussa eivät vaihtele.
m. Osoittaa, että teksti, johon haku on suoritettu, on pidettävä useista riveistä. Oletuksena säännöllisten lausekkeiden mekanismi pitää tekstiä yhdeksi rivillä riippumatta siitä, mitä se on itse asiassa. Näin ollen Metasimvoli "^" ja "$" Osoittavat koko tekstin alku ja loppu. Jos tämä modifioija on määritetty, ne viittaavat vastaavasti kunkin tekstirivin alussa ja lopussa.
s. Default Metasimol " . "Ei sisällä sen määritelmän mukaista merkkijonoa. Tämän modifioinnin eritelmä poistaa tämän rajoituksen.
U. Poistaa säännöllisen lausekkeen ahneus
u. Sisältää säännölliset lausekkeet kyrillic in UTF-8Muussa tapauksessa se toimii oikein.

pHP-toiminnot säännöllisten ilmaisujen käsittelyyn

preg_replace

Haku ja korvaaminen:

Preg_replace (sekoitettu $ kuvio, sekoitettu $ vaihto, sekoitettu $ aihe [, int $ raja \u003d -1 [, int & $ count]]);

Jokainen arvo voi olla merkkijono tai ryhmä, jos $ aihe. Array - Array palaa, muuten rivi

preg_split.

Rikkoo rivi säännöllisesti ilmaisulla:

Preg_split (merkkijono $ kuvio, merkkijono $ aihe [, int $ raja \u003d -1 [, int $ liput \u003d 0]];

Palauttaa array, joka koostuu sarjan merkkijonoalustasta aihe.joka on jaettu malliin vastaavilla rajoilla kuvio..

Aloitetaan, mikä on säännöllinen ilme. Nyt vastata minulle kysymykseen, onko sanalla "testi" kirje "e"? "On!" Kerro sinulle. Sitten kysyn toisesta kysymyksestä, miten löysit kirjeen "E" sana "testi"? Vastaus on ilmeinen, otamme ensimmäisen merkin, eli "t" vertaamalla sitä etsimään, eli "e". Jos ne eivät ole yhtäläisiä, sitten otamme toisen merkin, eli "e", vertaa sitä etsimään, eli "e". Voila! Löysi sattumansa. Vastaus: Sanassa "testi" on kirjain "E".

Ja nyt vastaa minulle toinen kysymys, missä on säännöllinen lauseke tässä esimerkissä? Toivon, että arvasit, että säännöllinen lauseke tässä on, että etsimme sanaa "testi". Toisin sanoen tässä esimerkissä oleva kirjain "E" on säännöllinen lauseke.

Mitkä ovat säännöllisiä lausekkeita PHP-käytössä? Käytännössä käytettiin säännöllisiä lausekkeita esimerkiksi määritelmään, sähköpostiosoite on oikea. Myös tällaisia \u200b\u200bilmentymiä käytetään käyttäjän ja salasanan oikeellisuuden määrittämiseen. Säännöllisten lausekkeiden avulla voit löytää osoitteen ja tallentaa sen linkkiin. Monet asiat voidaan tehdä analysoinnin jälkeen, se voidaan tunnistaa säännöllisten lausekkeiden päätoiminnolla ja kaksi puolta. Päätoiminto, Tämä on haku rivillä. Itsenä säilyttää löydettyjen sattumien ja korvaamisen.

Ensimmäinen säännöllinen lauseke

Teoriassa ymmärrämme, miten löydetään sana "E" sana "testi", miten se toteutetaan käytännössä? Käytä säännöllisiä lausekkeita PHP: ssä Käytä yleensä toimintoja:

preg_match ("Säännöllinen ilme (malli)", "Muuttuja, johon etsii", "muuttuja, jossa hakutulos tallennetaan (ei vaadittu parametri)); - Toimintohaun vaatimustenmukaisuus
preg_replace ("Säännöllinen ilme (malli)", "korvata sattuma löydetty", "muuttuja, johon korvataan"); - Vaihda toiminto

Aloitetaan näiden toimintojen käyttö .. Tässä on esimerkki symbolin "E" etsimisestä Word "Test":

$ a \u003d "testi";
jos (preg_match ("/ e / e /", $ a) echo "löytyi!";

Koodi kuvaa tilaa, jos jotain muuttujan $ A löytyy mallista ja anna sitten viesti "Löydetty!" Miten voit havaita mallimme seisoo kahden "/" välillä. Tässä tapauksessa symboli "/" symboloi mallimme alkua ja loppua. Toivon, että se on ymmärrettävää.

Kaikki tämä on varmasti mielenkiintoista ... mutta vain mallimme, jotkut hyvin yksinkertaiset, eivät löydä? Loppujen lopuksi meidän on harvoin löydettävä jonkinlainen symboli muuttujalla. Useimmissa tapauksissa meidän on löydettävä monia merkkejä, mutta vielä tuntematon. Kuinka olla? Let's laita itsellesi haaste ja yrittää ratkaista se. Oletetaan, että meillä on merkkijono, joka koostuu numeroista ja yksi tuntematon englanti kirjain

Kuinka löytää tämä kirje? Englannin aakkoset voi olla mikä tahansa kirjain, miten se määrittää? Sinä olet vastannut kysymykseesi, siellä on kirje, toisin sanoen se on alueella Z. Säännöllisissä ilmaisuissa voit käyttää alueita. Jos emme tiedä, mikä symboli etsii, mutta tiedän tarkalleen, mitä tämä symboli on englanninkielinen aakkosen kirjain, ennätys on seuraava:

$ a \u003d "123A321";
jos (preg_match ("//", $ a)) echo "löytyi!";

Huomaa, että alue asetetaan "["] "kiinnikkeet. Kaikki, jotka on tehty tällaisissa kiinnikkeissä, määritellään yksi Symboli tässä tapauksessa symboli vaihtelee välillä A - Z. Jos meidän on löydettävä kirje, mutta numero, kirjaa on näin:

$ a \u003d "ABC1CBA";
jos (preg_match ("//", $ a)) echo "löytyi!";

Haluan myös huomata, että säännöllinen lauseke on herkkä rekisteriin, siksi "a" ja "" hahmot ovat täysin erilaisia, etsiä niitä ja näitä merkkejä kirjoittamaan näin:

$ a \u003d "123A321";
jos (preg_match ("//", $ a)) echo "löytyi!";

On myös haku venäläisiä kirjeitä, toteutetaan sekä englanniksi:

$ a \u003d "123Y321";
jos (preg_match ("/ [a-ya-i] /", $ a)) echo "löytyi!";

Mittaterit

Olemme oppineet etsimään tuntemattomia symboleja rivillä. Entä jos meidän on löydettävä useita merkkejä? Niin sanotut Metasimwalls tulevat pelastamaan ... Oletamme, että meillä on rivi diquses, kirjaimet, miten kuvata se mallina? Sinä pystyt:

rivi - 123A321
kuvio -

Hmm ... Template on todella sopiva linjallemme, ja kun tarkistamista noudattaa kauan odotettua totta! Mutta jonkinlainen suurikokoinen ennätys, et näytä?

Näin se voidaan leikata:

rivi - 123A321
sapluuna - *

Minusta tuntuu niin lyhyemmältä, mikä on symboli "*"? Tämä on erittäin metarasimoli, se tarkoittaa, että meillä on kuvattu symboli (nimittäin symboli, joka voi sisältää numeroita 0 - 9 tai englanninkielisen aakkosen kirjain, A-Z) voidaan toistaa äärettömyyteen kerran tai kerran . Kyllä kyllä! Tämä Metasimol, löytävät sattumansa tyhjään muuttujaan, sillä jopa meillä kuvatun symbolin puuttuminen tuottaa totta! Muista se

Mitä muita Metasimwols on?

Esimerkiksi Metasimol "+" se on lähes samanlainen kuin metacimoli "*" yhdessä pienessä poikkeuksessa. "*" antaa totta jopa symbolin puuttuessa ja "+" tarkistaa vähintään yhden symbolin. Eli, jos linja vaatii minimi Yksi symboli, käytä sitten "+" sijasta "*"

Käytä usein usein Metasimolia "?" Se tarkoittaa, että linjassa on oltava enintään yksi haluttu symboli. Haluan antaa pari esimerkkiä viimeiset kaksi, minusta kuvattu Metasimvols.

Oletetaan, että meidän on tarkistettava käyttäjän salasanan oikeellisuus. Ajattelemme, että käyttäjän salasana sisältää? Ensinnäkin sen pitäisi olla vähintään yksi symboli. Toiseksi sen on sisällettävä vain englanninkielisen aakkosen numerot ja kirjaimet, se on mahdollista näyttää tältä:

$ a \u003d "qwerty12345";

Mitä merkkejä saimme? Englanninkieliset kirjaimet kaikista rekisteristä ja numeroita. Yritä nyt jättää tyhjä rivi salasanan sijaan.

$ a \u003d "";
jos (preg_match ("/ + + /", $ a)) echo "Salasana on totta";

Et korosta viestiä "Salasana uskollinen". Miksi? Koska metacimol "+" tarkisti merkkijonon vähintään yhden symbolin.

Ja nyt pieni keskittyminen, katsotaanko ilmaisua, emme sallita siinä, hyvin, sanotaan aukko, eikö? Laita tila salasanan loppuun ja ajaa

$ a \u003d "qwerty12345";
jos (preg_match ("/ + + /", $ a)) echo "Salasana on totta";

Ja miksi näemme viestimme oikeasta salasanasta? Kaikki on melko yksinkertainen ... preg_match () toiminto; Pysäyttää sen tarkistuksen ensimmäisellä sattumalta. Toisin sanoen symboli "Q" soveltuu meille kuvaamaan mallia, ja kaikki muu ei ole enää tärkeä tehtävä, mitä tehdä? Näin korjata se:

$ a \u003d "qwerty12345";
jos (preg_match ("/ ^ + $ /", $ a)) echo "Salasana on oikea";

Lisäämällä "^" lausekkeen alussa ja "$" lopussa, sanomme toiminnot, joita mallien on vastattava kaikki linja. Jos käynnistät tämän koodin, et näe viestejä, koska salasanan lopussa on virheellinen symboli - tila

Muuta nyt Metasimol "+" metacimolilla "?". Mitä luulet mitä tapahtuu? Oikea salasanan oikeellisuusviesti puuttuu, kuten salasanalla useampi kuin yksi symboli. Toivon, että selitin tavallisesti työtä, nämä kolme, usein käytetty, Metasimvols

Joskus "ei" parempi

Olemme ainakin oppineet tarkistamaan salasanan oikeellisuuden ja se on hyvä! Haluan kertoa teille toisesta tapaa etsiä jotain peräkkäin. Esimerkiksi meidän on tarkistettava puuttuminen numeroiden rivin. Kuinka tehdä se? Tässä on merkkijono:

(Esitin nimenomaan nämä "-_ + ()" symbolit, että hunajan elämä ei näyttänyt ...) Voisimme tehdä seuraavan lausekkeen:

Mutta samaa mieltä, koska emme aina tiedä, mitä merkkejä käytetään linjassa, mutta olemme vain tietäen, että numerot eivät saa olla siinä! Olisi loogisempaa kirjoittaa vain malli, joka menettäisi linjat, joilla ei numeroita, eikä niitä, joissa ne ovat läsnä "Voi minun Jumalani, kuinka monta ei ymmärrä merkkejä !!!". Tässä on esimerkki oikein koostetusta ilmaisusta tällaisille tehtäville:

$ a \u003d "A -_ + ()";
jos (preg_match ("/ ^ [^ 0-9] + $ /", $ a)) echo "ei numeroita!";

Miten saavuimme tämän? Otimme käyttöön symbolin, mutta! Kansi "^" ([^ 0-9]) ehdottaa, että tämän symbolin rivillä on ei saa Toivon niin tajunnut

No, spin hitaasti ... annan kaksi esimerkkiä selityksillä, joiden aikana opimme pitämään hakutulos muuttujaksi ja oppia tarkistamaan postiosoite oikeellisuudesta

Näin, pelastanut!

Blogini

$ a \u003d " Blogini";
preg_match ("/ / ", $ A);

Säännöllisessä ilmaisussa kuvasi kaikki mahdolliset merkit, jotka voivat kirjautua sisään. Haluan myös kiinnittää huomiota lainausmerkkeihin ja "/" ilmaisumme .. ennen kuin heidät on päinvastainen viiva, mitä hän on? Tosiasia on, että "/" ja lainataan itse omiin asiantuntijoihinsa. Ja jotta he voisivat havaita kuvion tavallisina merkkeinä, meidän on suojattava. Näytön versio suoritetaan lisäämällä käänteisen viivan erityisiin symboleihin. Toivon, että se on selvä

$ a \u003d " Blogini";
preg_match ("/ / ", $ a, $ b);

Näin ollen on tarpeen lisätä lisäparametri muuttujan $ B muodossa, ja löydetyt linkit tallennetaan. On myös tarpeen tietää, että hakutulos sijoitetaan ryhmään. Oli muuttuja $ B - ryhmä. Haluamasi tiedot indeksissä 1. ja tämä tarkoittaa, että hakutulos $ b -muuttuja. Poista tulos näytöllä:

$ a \u003d " Blogini";
preg_match ("/ / ", $ a, $ b);
eCHO $ \u200b\u200bB;

Oikea osoite, avain menestys!

No, radalla vastaus kysymykseen, onko sähköposti oikea? Aluksi sinun on tiedettävä, mitä merkkejä sallitaan osoitteissa? Sikäli kuin tiedän sallituissa merkkeissä, kirjoita:

  • englanti kirjaimet, numerot, "_", "-" Emmm näyttää olevan kaikki ... jatkaamme sitä.
  • Lisäksi meillä on "@"
  • Kun englanninkieliset kirjaimet
  • Seuraava, kohta
  • Ja jälleen, englanninkieliset kirjaimet ...

Se tuli säännöllinen ilmaisu seuraavasti:

$ a \u003d " [Sähköposti suojattu]";
jos (preg_match ("/ ^ [Sähköposti suojattu]+. + $ / ", $ A)) ECHO" Sähköpostiosoite kootaan oikein! ";
else Echo "Sähköpostiosoite ei ole oikea!";

No, ... toivoin, että tällaiset tallenteet eivät nyt pelotella sinua, ja voit helposti ymmärtää ne.

Haluan jotain sanottavaa jotain. Artikkeli osoittautui hankaliksi ja samanaikaisesti kattoi vain osaa mahdollisuuksista. Jos luet tämän ehdotuksen, olet todennäköisesti lukenut sen loppuun, kiitos siitä, mitä

Kuten CMS-blogin kehityksen, syklin, syklin ensimmäinen osa ohje suljettu! Lähitulevaisuudessa alamme toteuttaa hallintapaneelin, joten älä "kytke", jos sinulla on kysyttävää, olen iloinen voidessani vastata. Kaikki parhaiten, minulla on kaikki!