Mikä tahansa merkki php:n säännöllisissä lausekkeissa. Säännölliset lausekkeet (mallit)

) Näytin sinulle esimerkin säännöllisten lausekkeiden käyttämisestä tiettyjen kappaleiden etsimiseen lähdekoodi sivuja. Nyt opimme kirjoittamaan niitä itse. Tämä taito auttaa sinua kirjoittamaan, poistamaan tekstiä tarpeettomista fragmenteista, etsimään tarvittavat osat suuria määriä tekstiä ja niin edelleen.

Tämä aihe on melko vaikea, mutta yritän lyhyt muoto valaisee eniten tärkeitä kohtia. En tiedä kuinka menestyn, mutta toivon, että oppitunnista on hyötyä.
Joten aloitetaan siitä tosiasiasta, että PHP:ssä on useita toimintoja säännöllisten lausekkeiden kanssa työskentelemiseen, mutta kolmea käytetään useimmiten:

  • preg_replace — etsi ja korvaa säännöllistä lauseketta vastaavaa tekstiä;
  • preg_match - vain tavallinen haku;
  • preg_split - etsi ja jaa tekstiä.

Tekijä: vähintään, aiemmilla tunneilla käytimme juuri niitä. Tarkemmin sanottuna preg_match sijaan oli preg_match_all, mutta tämä on olennaisesti sama asia, vain jälkimmäinen ei keskeytä hakua ensimmäisen löydön jälkeen. Eli jos käytämme preg_match, emme löydä kaikkia esiintymiä, vaan vain ensimmäistä.

Käytettävän toiminnon valitseminen missäkin tilanteessa on melko yksinkertaista. Meidän on vaihdettava - käytämme korvaamista, kuten silloin, kun meidän piti poistaa tarpeettomia osia sivukoodista, muistatko?

$sivu = preg_replace("/ ^]/i", "", $sivu); $sivu = preg_replace("/ ^]/i", "", $sivu); $sivu = str_replace("", "", $sivu);

Funktion ensimmäinen parametri on säännöllinen merkki, joka määrittää, mitä etsimme. Toinen on se, millä korvaamme sen. Kolmas - Mistä me etsimme? Siksi otimme tässä $page-muuttujan ja annoimme sille preg_replace-funktion tuloksen, jossa etsimme kaikkia input type=checkboxia sekä avaus- ja sulkemistunnisteita. He korvasivat ne ", eli he yksinkertaisesti poistivat ne. Toivottavasti täällä on kaikki selvä. Siirrymme itse lausekkeen (funktion ensimmäinen parametri) analysointiin hieman myöhemmin.
Siellä oli myös esimerkki preg_match_all-käytöstä, joka oli hyödyllinen kaikkien muiden linkkien löytämisessä. Tarvitsimme silloin linkkejä, koska ne sisälsivät avainsanoja, jonka jäsensimme. Tässä on mitä tapahtui:

Preg_match_all("/ ]+?>(.*?)<\/a>/uis",$sivu,$ok); for ($j=0; $j ".$ok[$j].""; }

Ensimmäinen parametri on jälleen säännöllinen lauseke, joka etsii kaikki linkit, jotka ovat luonnollisesti "a"-tunnisteen sisällä (jos et tunne html-merkintää, lue). Toinen on muuttuja, joka sisältää haetun tekstin. Kolmas parametri on muuttuja, johon tulos sijoitetaan - $ok. Tämän jälkeen ei enää tarvitse kuin käydä läpi kaikki tarvittavat $ok:n elementit saadaksemme tarvitsemamme avainsaaliit. Erikseen on sanottava, että lähdössä saamme moniulotteisen taulukon. Siksi näytimme sen niin monimutkaisella tavalla: $ok[$j]. Voit tarkastella taulukon rakennetta käyttämällä alla olevaa toimintoa ja ymmärrät kaiken.

Tulosta_r($ok);

Näyttää siltä, ​​että olemme järjestäneet työssämme käyttämämme toiminnot. Nyt on vain opeteltava kirjoittamaan nämä samat säännölliset lausekkeet, jotka ovat kunkin menetelmän ensimmäinen parametri. Siirrytään tärkeimpään asiaan.

Kuinka kirjoittaa tavallisia lauseita

Ensin tarkastellaan perusrakenteita. Ilmaisuilla on vaihtoehtoja. Ne määritellään yhdellä kirjaimella ja kirjoitetaan loppuun vinoviivalla.

Lisäksi tuetaan seuraavia metamerkkejä:

Metahahmoilla puolestaan ​​voi olla muuntajia:

No, nyt voimme siirtyä analysoimaan tavanomaisia ​​​​mallejamme edelliseltä oppitunnilta. Yllä olevien merkkien perusteella yritetään ymmärtää, mitä meillä on. Tässä on ilmaisu:

/^]/i

Ensimmäinen ja viimeinen kauttaviiva "/" osoittavat, että niiden sisällä on säännöllinen lauseke. Samanaikaisesti, viimeisen jälkeen laitamme "i", tämä on vaihtoehto, kuten ensimmäisessä taulukossa - älä ota tapausta huomioon. Viivojen sisällä on itse säännöllinen sekvenssi. Se alkaa alle-merkillä ja syöttötunnisteella, ja kaikki sen jälkeinen pistemerkkiin asti on pelkkää tekstiä etsittäväksi. Mutta itse piste ja sen jälkeiset symbolit ovat mielenkiintoisempia. Tässä tapauksessa rakenne ".*?" tarkoittaa mitä tahansa merkkijonoa. Eli jos yhdistämme vain tekstin ja tämän rakenteen, valitsemme kaiken tekstin ensimmäisen esiintymisen jälkeen ja loppuun asti. Lopettaaksesi sinun on kohdattava joko sulkeva HTML-koodi "enemmän kuin" tai uusi rivimerkki. Tämä muotoilu antaa meille juuri tällaisen mahdollisuuden:

Hakasulkeissa olevat merkit on yhdistetty loogisella TAI-merkillä. Loppu on suurempi kuin merkki TAI rivin alku.
Siinä kaikki lauseke, siinä asetamme aloitusehdon, keski- ja loppuehdon. Ei vaikeaa, eihän? Tässä kuva selvyyden vuoksi:

Katsotaanpa vielä yksi asia vahvistaaksesi kaiken. Etsimme linkkejä niihin:

/]+?>(.*?)<\/a>/uis

Luimme ilmaisun. Jälleen hylkäämme ensin vinoviivat ja vaihtoehdot. "uis"-liput ovat itsestään selviä, paitsi "u", jota en kuvaillut - se osoittaa, että käytämme Unicode-koodausta. Ei ole paljon jäljellä. Alku on "a"-tunniste, joka avautuu, sitten tulee luokka

mikä tarkoittaa EI suurempia tai pienempiä kuin (HTML-tunnisteiden avaaminen ja sulkeminen), eli tässä tapauksessa mitään merkkejä. "+?" lisätään luokkaan, mikä tarkoittaa, että tämä luokka on läsnä vähintään kerran (mutta vähintään yhden kerran). Ja sitten tulee "a"-tunnisteen sulkeva html-tunniste. Linkin sisällä on ryhmän määrittelemää tekstiä

Loppujen lopuksi emme tiedä minkälaista tekstiä siellä on, joten määrittelemme tällaisen ryhmän. Ja lopussa on sulkeva tagi "a":

Huomaa, että käytämme kenoviivaa, jotta se koetaan yksinkertaiseksi tekstiksi.

Huh huh. Aihe on todella monimutkainen, vaatii harjoittelua. Ehkä teen jotain ei aivan optimaalisesti ja on mahdollista luoda muita, oikeampia säännöllisiä lausekkeita, mutta olen yhtä itseoppinut kuin sinä, joten älä tuomitse tiukasti, vaan jaa vaihtoehtosi kommenteissa. Lisäksi, jos jokin on epäselvää, kommentit ja yhteystiedot ovat palveluksessasi.

Säännölliset lausekkeet ovat erittäin tehokas, mutta samalla vaikeasti ymmärrettävä merkkijonojen käsittelytyökalu. Kuvaan pääkohdat. Säännöllinen lauseke on merkkijonokuvio. Tämän mallin avulla voit etsiä esiintymiä, tehdä korvauksia ja tarkistaa mallin noudattamisen.

Säännöt kuvion luomiseen

Mallin rajat on osoitettava tietyillä symboleilla, joissa käytetään usein " / ", mutta käytän mieluummin" # " koska etu-/taakseviivojen runsaus voi ärsyttää silmiä, eikä hash-merkkejä yleensä käytetä missään muualla. Joten: " #HereBodyRegularExpression#"

Sulkuja käytetään säännöllisen lausekkeen sisällä - nämä ovat osalausekkeita, joita voidaan muokata, esimerkiksi:

#^/catalog/(+)/(+)\.html.*#

Tämä lauseke on suunniteltu saamaan parametrit merkkijonoon URL-osoite. Rivin alussa on erikoismerkki " ^ " - tämä tarkoittaa rivin alkua. Seuraavaksi tulee " /luettelo/" - tässä ei ole erikoismerkkejä, tämä on vain tekstiä, jonka pitäisi olla rivillä. Sitten törmäsimme sulkeisiin, eli saavuimme ensimmäiseen osalausekkeeseen. Hakasulkeet osoittavat monia merkkejä, jotka voivat olla rivillä tässä paikassa. Merkki " - " tarkoittaa luettelointia. Merkki " \ " välttää erikoismerkkejä. Näin ollen ensimmäisessä osalausekkeessa saamme olla isot kirjaimet ja latinalaisten aakkosten pienet kirjaimet, numerot 0-9, alaviiva, viiva ja piste. Viiva ja piste ovat erikoismerkkejä, mutta tässä ne on pakotettu, joten tässä on vain symboleja hakasulkujen jälkeen on merkki ". + " - tämä tarkoittaa, että edellinen merkki (ja meille tämä on hakasulkeissa määritetty merkkijoukko) voi esiintyä yhden tai useamman kerran. Sitten tulee " / " on vain symboli ja samanlainen toinen osalauseke. Sitten tulee " \.html"mitä teksti tarkoittaa" .html". Ja sitten erikoismerkit" .* "Piste tarkoittaa mitä tahansa merkkiä ja tähti tarkoittaa mitä tahansa määrää edellisestä merkistä. Eli jälkeen " .html"Kaikki voi mennä.

Määrän merkintä, kvantitaattorit

Yllä olemme jo tarkastelleet sellaisia ​​symboleja, jotka osoittavat aikaisempien symbolien lukumäärän, kuten + Ja * . Tässä on kaikki mahdollisuudet määrittää määriä:

Erikoishahmot

Joillekin merkkiryhmille on olemassa erityisiä lyhenteitä:

"Ahneus"

Katsotaanpa säännöllisen lausekkeen ahneuden käsitettä. Siellä on esimerkiksi rivi:

#()#

Luemme: osalauseke:

Kaikki näyttää olevan oikein, osalauseke sopii:

Mutta se sopii myös:

Sen me saamme, koska... Säännölliset lausekkeet ovat oletuksena ahneita. Voit poistaa ahneuden muokkaajalla " U", näin:

#()#U

Muokkaimet

Jälkeen säännöllinen lauseke muokkaajat voivat mennä: " #HereBodyRegularExpression#HereModifiers"Modifioijatyypit:

i Ottaa käyttöön tilan, jossa kirjainkoolla ei ole merkitystä, ts. isot ja pienet kirjaimet lausekkeessa eivät eroa toisistaan.
m Ilmaisee, että haettavaa tekstiä on käsiteltävä useista riveistä koostuvana. Oletuksena säännöllinen lausekemoottori käsittelee tekstiä yhtenä merkkijonona riippumatta siitä, mitä se todellisuudessa on. Vastaavasti metahahmot "^" ja "$" osoittavat koko tekstin alun ja lopun. Jos tämä muokkaus on määritetty, ne osoittavat vastaavasti kunkin tekstirivin alun ja lopun.
s Oletusmetamerkki on " . " ei sisällä rivinvaihtomerkkiä määritelmässään. Tämän muokkaimen määrittäminen poistaa tämän rajoituksen.
U Poistaa säännöllisen lausekkeen ahneuden
u Mahdollistaa säännöllisten lausekkeiden käytön Kyrillisestä UTF-8:ksi, muuten se ei toimi oikein.

php Toiminnot säännöllisten lausekkeiden käsittelyyn

preg_replace

Etsi ja korvaa:

Preg_replace (sekoitettu $kuvio , sekalainen $korvaus , sekalainen $aihe [, int $raja = -1 [, int &$count ]]);

Jokainen arvo voi olla merkkijono tai matriisi $aihe array - palautetaan taulukko, muuten merkkijono

preg_split

Jakaa merkkijonon säännöllisen lausekkeen avulla:

Preg_split (merkkijono $malli , merkkijono $aihe [, int $raja = -1 [, int $liput = 0 ]]);

Palauttaa taulukon, joka koostuu annetun merkkijonon osamerkkijonoista aihe, joka on jaettu kuviota vastaavia rajoja pitkin kuvio.

Aloitetaan siitä, mikä on säännöllinen lauseke. Joten vastaa minulle tähän kysymykseen: onko sanassa "testi" "e"? "Syödä!" sinä sanot. Sitten kysyn teiltä toisen kysymyksen, kuinka löysit kirjaimen "e" sanasta "testi"? Vastaus on ilmeinen, otamme ensimmäisen merkin, eli "t" ja vertaamme sitä etsimään, eli "e". Jos ne eivät ole samanarvoisia, otamme toisen merkin, eli "e", ja vertaamme sitä etsimään, eli "e". Voila! Osuma löytyi. Vastaus: Sana "testi" sisältää kirjaimen "e".

Vastaa nyt vielä yhteen kysymykseen, missä on säännöllinen lauseke tässä esimerkissä? Toivottavasti arvasit, että säännöllinen lauseke tässä on mitä etsimme sanasta "testi". Eli kirjain "e" tässä esimerkissä on säännöllinen lauseke.

Mihin säännöllisiä lausekkeita käytetään PHP:ssä? Käytännössäni säännöllisiä lausekkeita käytettiin esimerkiksi määrittämään, oliko sähköpostiosoite oikein laadittu. Tällaisia ​​lausekkeita käytetään myös käyttäjätunnuksen ja salasanan oikeellisuuden määrittämiseen. Säännöllisten lausekkeiden avulla voit löytää osoitteen linkistä ja tallentaa sen. Voit tehdä monia asioita Analysoimalla tätä, voit tunnistaa säännöllisten lausekkeiden päätoiminnon ja kaksi sivutoimintoa. Päätoiminto, tämä on merkkijonon osumien haku. Sivuvaikutuksia ovat löydettyjen osumien tallentaminen ja korvaaminen.

Ensimmäinen säännöllinen lauseke

Teoriassa ymmärrämme kuinka löytää "e"-merkki sanasta "testi", mutta miten tämä toteutetaan käytännössä? Säännöllisten lausekkeiden käyttämiseen php:ssä käytetään yleensä seuraavia toimintoja:

preg_match("säännöllinen lauseke (kuvio)", "muuttuja, jossa haku suoritetaan", "Muuttuja, johon hakutulos tallennetaan (valinnainen parametri)"); - Vastaava toiminto
preg_replace("säännöllinen lauseke (kuvio)", "Millä löydetty vastaavuus korvataan", "muuttuja, johon korvaus tehdään"); - Vaihda toiminto

Aloitetaan näiden toimintojen käyttäminen. Tässä on esimerkki merkin "e" etsimisestä sanasta "testi".

$a = "testi";
if(preg_match("/e/",$a)) echo "löytyi!!";

Koodi kuvaa ehtoa: jos muuttujasta $a löytyy jotain mallia vastaavaa, näyttöön tulee viesti "found!!" Kuten olet ehkä huomannut, mallimme sijaitsee kahden "/" välissä. Tässä tapauksessa symboli "/" symboloi mallimme alkua ja loppua. Toivottavasti tämä on selvää.

Kaikki tämä on tietysti mielenkiintoista... mutta mallimme on hyvin yksinkertainen, etkö usko? Loppujen lopuksi meidän on harvoin löydettävä jokin symboli muuttujasta. Useimmissa tapauksissa meidän on löydettävä monia hahmoja, ja myös tuntemattomia. Miten tämä voi olla? Asetetaan itsellemme ongelma ja yritetään ratkaista se. Oletetaan, että meillä on merkkijono, joka koostuu numeroista ja yhdestä tuntemattomasta englanninkielisestä kirjaimesta

Kuinka löytää tämä kirje? Englannin aakkosten kirjain voi olla mikä tahansa, joten miten voit tunnistaa sen? Vastasit itse kysymykseesi, siinä on mikä tahansa kirjain, eli se on välillä a - z. Voit käyttää alueita säännöllisissä lausekkeissa. Jos emme tiedä mitä merkkiä etsimme, mutta tiedämme varmasti, että tämä merkki on englannin aakkosten kirjain, merkintä on seuraava:

$a = "123a321";
if(preg_match("//",$a)) echo "löytyi!!";

Huomaa, että alue on suljettu "[" "]" sisällä. Kaikki tällaisiin suluihin sisältyvä määritellään nimellä yksi symboli, tässä tapauksessa symboli vaihtelee a:sta z:hen. Jos meidän ei tarvitse löytää kirjainta, vaan numeroa, merkintä on seuraava:

$a = "abc1cba";
if(preg_match("//",$a)) echo "löytyi!!";

Haluan myös huomata, että säännölliset lausekkeet ovat kirjainkoolla, joten merkit "A" ja "a" ovat täysin erilaisia. Voit etsiä molempia merkkejä kirjoittamalla seuraavasti:

$a = "123a321";
if(preg_match("//",$a)) echo "löytyi!!";

Myös venäläisten kirjainten haku suoritetaan samalla tavalla kuin englanninkielisten kirjainten kanssa:

$a = "123 × 321";
if(preg_match("/[a-zA-Z]/",$a)) echo "löytyi!!";

Metahahmot

Opimme etsimään tuntematonta merkkiä merkkijonosta. Mitä tehdä, jos meidän on löydettävä useita hahmoja? Niin sanotut metasymbolit tulevat apuun... Oletetaan, että meillä on merkkijono, jossa on numeroita ja kirjaimia, miten voimme kuvata sitä mallissa? Voit tehdä tämän:

rivi - 123a321
näyte -

Hmm... malli itse asiassa vastaa merkkijonoamme, ja kun se tarkistetaan, se antaa kauan odotetun totuuden! Mutta se on jotenkin hankala levy, eikö niin?

Näin lyhennät sitä:

rivi - 123a321
näyte - *

Minusta se näyttää lyhyemmältä. Mikä on "*"-symboli? Tämä on sama metasymboli, se tarkoittaa, että kuvaamamme symboli (eli symboli, joka voi sisältää numeroita 0 - 9 tai englannin aakkosten kirjaimia, a - z) voidaan toistaa loputtomasti tai useammin kuin kerran. kyllä ​​kyllä! Tämä metasymboli löytää osuman tyhjästä muuttujasta, koska jopa kuvailemamme symbolin puuttuminen palauttaa tosi! Muista tämä

Mitä muita metahahmoja siellä on?

Esimerkiksi metamerkki "+" Se on melkein samanlainen kuin metamerkki "*" yhdellä pienellä poikkeuksella. "*" palauttaa tosi, vaikka merkkiä ei olisi, ja "+" tarkistaa, onko vähintään yksi merkki. Eli jos linja vaatii läsnäoloa minimi yksi merkki ja käytä sitten "+" "*" sijaan

Myös metamerkkiä "?" käytetään usein. Se tarkoittaa, että rivillä ei saa olla enempää kuin yksi haluttu merkki. Annan pari esimerkkiä kahdesta viimeksi kuvailemastani metahahmosta.

Oletetaan, että meidän on tarkistettava käyttäjän salasanan oikeellisuus. Mietitään, mitä käyttäjän salasanan tulisi sisältää? Ensinnäkin sen on oltava vähintään yksi hahmo. Toiseksi sen tulee sisältää vain englannin aakkosten numeroita ja kirjaimia, joten säännöllinen lauseke näyttää tältä:

$a = "qwerty12345";

Mitä hahmoja sallimme? Englannin kirjaimet mistä tahansa kirjaimesta ja numeroista. Yritä nyt jättää tyhjä rivi salasanan sijaan.

$a = "";
if(preg_match("/+/",$a)) echo "Salasana on oikein";

Et näe "Salasana on oikein" -viestiä. Miksi? Koska "+"-metamerkki tarkisti merkkijonon nähdäkseen, oliko siinä vähintään yksi merkki.

Ja nyt pieni temppu, katsotaanpa ilmeämme, emme sallineet, no, sanokaamme välilyöntiä siinä, eikö niin? laita välilyönti salasanan loppuun ja suorita

$a = "qwerty12345";
if(preg_match("/+/",$a)) echo "Salasana on oikein";

Ja miksi näemme viestimme oikeasta salasanasta? Se on melko yksinkertaista... Funktio preg_match(); lopettaa tarkistamisen ensimmäisessä ottelussa. Eli symboli "q" sopii kuvaamaan, ja kaikki muu ei ole enää tärkeää toiminnolle. Mitä meidän pitäisi tehdä? Voit korjata sen seuraavasti:

$a = "qwerty12345";
if(preg_match("/^+$/",$a)) echo "Salasana on oikein";

Lisäämällä "^" lausekkeen alkuun ja "$" loppuun, kerromme funktiolle, mitä kuvion tulee vastata kaikki linja. Jos suoritat tämän koodin, et näe viestiä, koska salasanan lopussa on laiton merkki - välilyönti

Vaihda nyt metamerkki "+" metamerkiksi "?". Mitä luulet tapahtuvan? Oikein, salasanan oikeellisuudesta ei tule viestiä, koska salasanassa on enemmän kuin yksi merkki. Toivon, että selitin oikein näiden kolmen usein käytetyn metahahmon työn

Joskus "ei" on parempi

Olemme ainakin oppineet tarkistamaan salasanan oikein, ja se on hyvä! Haluan kertoa teille toisesta tavasta etsiä jotain merkkijonosta. Oletetaan, että meidän on tarkistettava, ettei merkkijonossa ole numeroita. Miten tämä tehdään? Tässä on rivi:

(Lisäsin siihen nimenomaan nämä "-_+()" -symbolit, jotta elämä ei tuntuisi hunajalta...) Voisimme muotoilla seuraavan lausekkeen:

Mutta sinun on myönnettävä, että emme aina tiedä, mitä merkkejä rivillä käytetään, mutta tiedämme varmasti, että siinä ei saa olla numeroita! Siksi olisi loogisempaa kirjoittaa malli, joka ohittaisi rivit, joissa Ei numeroita, ei niitä, joissa on "Voi luoja kuinka paljon käsittämättömiä symboleja!!!". Tässä on esimerkki oikein laaditusta lausekkeesta tällaisille ongelmille:

$a = "a-_+()";
if(preg_match("/^[^0-9]+$/",$a)) echo "Ei numeroita!";

Miten saavutimme tämän? Olemme syöttäneet symbolin Mutta! alkuun asetettu korkki "^" ([^0-9]) osoittaa, että niitä tulee olemaan ei pitäisi Toivottavasti tämä on ratkaistu

No, päätetään pikkuhiljaa... Annan kaksi esimerkkiä selityksillä, joiden aikana opimme tallentamaan hakutuloksen muuttujaksi ja opettelemaan tarkistamaan postiosoitteen oikeellisuuden

Näin sen ja pelastin sen!

Minun blogini

$a = " Minun blogini";
preg_match("/ /", $a);

Säännöllisessä lausekkeessamme kuvailimme kaikki mahdolliset merkit, jotka voidaan sisällyttää linkkiin. Haluan myös kiinnittää huomiota ilmaisumme lainaukseen ja "/"-merkkeihin. Niitä edeltää kenoviiva. Mitä varten se on? Tosiasia on, että "/" ja lainaus ovat itse erikoismerkkejä. Ja jotta malli voisi havaita ne tavallisina symboleina, meidän on seulottava ne. Escape tehdään lisäämällä kenoviiva ennen erikoismerkkejä. Toivottavasti asia on selvä

$a = " Minun blogini";
preg_match("/ /", $a, $b);

No, vastaavasti on tarpeen lisätä ylimääräinen parametri muuttujan $b muodossa, johon löydetty linkki tallennetaan. Sinun on myös tiedettävä, että hakutulos sijoitetaan taulukkoon. Siksi muuttuja $b on taulukko. Etsimämme tieto on indeksin 1 alla. Tämä tarkoittaa, että hakutulos on muuttujassa $b. Näytetään tulos näytöllä:

$a = " Minun blogini";
preg_match("/ /", $a, $b);
kaiku $b;

Oikea osoite on avain menestykseen!

Ja lopuksi vastaus kysymykseen, onko sähköposti oikein? Ensinnäkin sinun on tiedettävä, mitkä merkit ovat sallittuja osoitteissa? Sikäli kuin tiedän, sallittuja merkkejä ovat mm.

  • Englanninkieliset kirjaimet, numerot, "_", "-" ummmm kaikki näyttää olevan... Jatketaan tästä.
  • Seuraavaksi meillä on "@"
  • Sen jälkeen englanninkieliset kirjaimet
  • Seuraavaksi piste
  • Ja taas englanninkieliset kirjaimet...

Joten säännöllinen lauseke on seuraava:

$a = " [sähköposti suojattu]";
if(preg_match("/^+@+.+$/", $a)) echo "sähköpostiosoite on oikein!";
else echo "sähköpostiosoite EI ole kirjoitettu oikein!";

No... Toivon, etteivät sellaiset levyt pelota sinua nyt, ja ymmärrät ne täysin.

Lopuksi haluan sanoa jotain. Artikkeli osoittautui hankalaksi ja samalla kattoi vain osan mahdollisuuksista. Jos luet tätä lausetta, olet todennäköisesti lukenut sen loppuun, mistä paljon kiitoksia

Mitä tulee CMS-blogin kehittämistä käsittelevään artikkelisarjaan, sarjan ensimmäinen osa Julistan sen suljetuksi! Lähitulevaisuudessa alamme ottaa hallintapaneelia käyttöön, joten älä "vaihda" Jos sinulla on kysyttävää, vastaan ​​mielelläni. Kaikkea hyvää sinulle, siinä kaikki mitä minulla on!