Kotiin / Internet / Php säännölliset lausekkeet preg match. Säännölliset lausekkeet php:ssä. Lainausmerkkien korvaaminen älykkäillä lainausmerkeillä

Php säännölliset lausekkeet preg match. Säännölliset lausekkeet php:ssä. Lainausmerkkien korvaaminen älykkäillä lainausmerkeillä


Yksi erittäin tehokkaista ja hyödyllisistä ominaisuuksista PHP kieli- tuki säännöllisille lausekkeille. Monet ohjelmoijat, sekä aloittelijat että melko kokeneet, pelkäävät säännöllisten lausekkeiden kielen ilmeistä monimutkaisuutta ja monimutkaisuutta. Mutta voin vakuuttaa teille - se on sen arvoista. Säännöllisten lausekkeiden käyttö yksinkertaistaa huomattavasti tekstien ja heikosti jäsenneltyjen tietojen käsittelyä.


Säännölliset lausekkeet ovat erityisellä kielellä kirjoitettuja lausekkeita.


Älä huolestu, kieli on melko helppo ymmärtää, tarvitset vain kokemusta ja harjoittelua. Luulen, että olet toistuvasti kohdannut tilanteita, joissa sinulla on tekstiä (esim Microsoft Word


) ja sinun on löydettävä siitä jotain tärkeää. Jos tiedät tarkalleen mitä etsit, kaikki on yksinkertaista: avaa hakuikkuna, kirjoita hakusana, paina painiketta ja voila - teksti löytyy. Mutta mitä teet, jos tiedät vain etukäteen, minkä tyyppistä tietoa etsit? Sinulla on esimerkiksi tehtävä löytää kaikki osoitteet sähköposti

parin sadan arkin asiakirjassa. Jotkut tarkastelevat asiakirjaa manuaalisesti, jotkut kirjoittavat koiran (@) hakuun ja etsivät sitä. Samaa mieltä - molemmat vaihtoehdot ovat takaiskuja, kiittämätöntä työtä.

Säännöllinen lauseke on tiettyjen lakien ja sääntöjen mukaan muodostettu tekstijono. Merkkijono koostuu merkeistä ja merkkiryhmistä, metamerkkeistä, kvantoijista ja muuntimista.

Symbolien alla tässä tapauksessa minkä tahansa aakkosten symbolit ymmärretään. Eikä vain luettavia. Voit helposti lisätä lauseeseen lukemattoman merkin, sinun tarvitsee vain tietää sen koodi heksadesimaalimuodossa. Esimerkiksi:

// luettavat merkit a E // lukemattomat merkit ja koodit \x41 - sama kuin kirjain "A" \x09 - sarkainmerkki

Merkkiryhmä on useita peräkkäin kirjoitettuja merkkejä:

Abvg ACZms

Haluaisin heti kiinnittää huomionne - säännöllisten lausekkeiden "välilyönti" on myös merkittävä merkki, joten ole varovainen ilmaisuja kirjoittaessasi. Esimerkiksi nämä merkkiryhmät ovat ERI ilmauksia:

ABC WHERE ABC WHERE

Kielen seuraava elementti on metamerkit. Etuliite "meta" tarkoittaa, että nämä symbolit kuvaavat joitain muita symboleja tai niiden ryhmiä. Taulukko kuvaa säännöllisen lausekkeen kielen tärkeimmät metamerkit:

Metamerkit erikoismerkkien määrittämiseen
() Sulut. Määrittää sisäkkäiset lausekkeet.
| Valinnan metahahmo
^ Rivin alun metamerkki
$ Rivin lopun metamerkki
\n Rivinsyöttömerkki (heksadesimaalikoodi 0x0A)
\r Kärryn palautusmerkki (heksadesimaalikoodi 0x0D)
\t Sarkainmerkki (heksadesimaalikoodi 0x09)
\xhh Jos lisäät merkin heksadesimaalikoodilla 0xhh, esimerkiksi \x42, lisää latinalaisen kirjaimen "B"
Metamerkit merkkiryhmien määrittämiseen
. Piste. Mikä tahansa hahmo.
\d Numero (0-9)
\D Ei numero (mikään merkki paitsi merkit 0-9)
\s Tyhjä merkki (yleensä välilyönti ja sarkain)
\S Ei-tyhjä merkki (kaikki paitsi merkit, jotka tunnistetaan \s-metamerkillä)
\w Sanakirjamerkki (merkki, jota käytetään sanoissa. Yleensä kaikki kirjaimet, kaikki numerot ja alaviiva ("_"))
\W Kaikki paitsi \w-metamerkin määrittelemät merkit

Taulukon toisen puoliskon metahahmot ovat erittäin helppo muistaa. "d" - numero (numero), "s" - symboli (symboli), "w" - sana (sana). Jos kirjain on suuri, sinun on lisättävä "EI" ryhmän kuvaukseen.

Otetaan esimerkiksi teksti "Punaisessa paidassa on numerot 1812 ja vihreässä paidassa on numerot 2009." Katsotaanpa esimerkkejä yksinkertaisimmista säännöllisistä lausekkeista:

\d\d\d\d - löytää 1812 ja 2009 \D - löytää kaikki kirjaimet, välilyönnit ja välimerkit \s - löytää kaikki välilyönnit tekstistä.

Mutta esimerkkimme vuosi voidaan kirjoittaa ei neljällä, vaan kahdella numerolla, sanoilla voi olla muita käänteitä jne. Hakasulkeilla määritetyt merkkien osajoukot voivat auttaa tässä:

Tarkoittaa mitä tahansa numeroa (sama kuin \d) - tarkoittaa parillista numeroa - tarkoittaa mitä tahansa latinalaisten aakkosten symbolia (joka tapauksessa) tai numeroa.

Esimerkiksi lauseke \d\d\d testimerkkijonossa löytää vain numeron 1812, mutta ei 2009. Tämä lauseke tulee lukea seuraavasti: "etsi kaikki neljän numeron sekvenssit, joissa viimeinen numero on 0,2,4,6 tai 8".

Meillä on vain mainittava kvantitaattorit ja modifioijat.

Kvantori on erityinen rakennelma, joka määrittää, kuinka monta kertaa merkin tai merkkiryhmän tulee esiintyä. Kvantifioija kirjoitetaan hakasulkeisiin "()". Kaksi tallennusmuotoa on mahdollista: tarkka ja alue. Tarkka muoto on kirjoitettu näin:

Tässä X on kuinka monta kertaa edellinen symboli tai ryhmä on toistettava. Esimerkiksi ilmaisu

Toinen tallennusmuoto on alue. Tallennettu nimellä

(X, Y) // tai (,Y) // tai (X,)

jossa X on pienin ja Y on toistojen enimmäismäärä. Esimerkiksi:

luetaan "kahdesta neljään numeroa kirjoitettuna peräkkäin". Jos jotakin rajoista ei ole määritetty, rajoitusta ei oletettu. Esimerkiksi:

\w(3,) - kolme tai useampia kirjaimia. \d(,5) - numeroita ei ole ollenkaan tai niitä on, mutta enintään viisi.

Määrittäjiä voidaan käyttää joko yksittäiseen merkkiin tai ryhmään:

[A-Yaa-ya](1,3)

Tämä rakenne valitsee tekstistä kaikki yhden, kahden tai kolmen kirjaimen venäläiset sanat (esimerkiksi "tai", "ei", "minä", "menen" jne.)

Kihara aaltosulkeiden lisäksi on kolme muuta kvantifioivaa metamerkkiä: “*” (tähti), “+” (plus) ja “?” (kysymys). Niitä käytetään tapauksissa, joissa vaadittujen toistojen vähimmäis- ja enimmäismäärää ei tiedetä etukäteen. Esimerkiksi sähköpostiosoitteita haettaessa ei voi etukäteen tietää, kuinka monta merkkiä käyttäjätunnuksessa on (ennen "koira") ja kuinka monta on verkkotunnuksen nimessä (koiran jälkeen).

Metamerkki "*" luetaan "mikä tahansa määrä nollasta tai enemmän", ts. design

määrittää minkä tahansa määrän peräkkäisiä kirjaimia, mukaan lukien niiden täydellinen puuttuminen.

"+"-symboli eroaa tähdestä vain siinä, että se vaatii vähintään yhden merkin läsnäolon. Ne. design

vastaa mitä tahansa digitaalista sekvenssiä, jossa on yksi tai useampi numero.

Symboli "?" vastaa yhden merkin puuttumista tai läsnäoloa. Ne. design

vastaa mitä tahansa digitaalista sekvenssiä, jossa on yksi tai kaksi numeroa.

Tässä kannattaa mainita sellainen antiifiers “*” ja “+” ominaisuus kuin ahneus. Asia on, että oletusarvoisesti nämä merkit vastaavat pisintä mahdollista merkkijonoa. Esimerkiksi riville "äiti pesi kehyksen" lauseke:

valitsee "mama soap ra", mikä on hieman odottamatonta, koska odotimme saavamme "ma". Jos haluat muuttaa tätä toimintaa, käytä metamerkkiä "?" (kysymysmerkki) kirjoitetaan välittömästi kvantisoijan jälkeen. Se rajoittaa kvantorien "ruokahalua" pakottamalla ne palauttamaan ensimmäisen ottelun pisimmän sijaan. Muutetaan nyt edellistä esimerkkiä:

ja hanki tarvittava ottelu "ma".

Kielen viimeinen elementti on modifioijat. Muokkaus on erikoismerkki, joka määrittää "järjestelmä"-parametrit säännöllisten lausekkeiden analysointiin. Tällaisia ​​symboleja on vain neljä, niitä voidaan käyttää joko yksittäin tai samanaikaisesti:

i Ottaa käyttöön tilan, jossa kirjainkoolla ei ole merkitystä, ts. isot ja pienet kirjaimet lausekkeessa eivät eroa toisistaan.
m Osoittaa, että etsittävää tekstiä tulee käsitellä useista riveistä koostuvana. Oletuksena säännöllinen lausekemoottori käsittelee tekstiä yhtenä merkkijonona riippumatta siitä, mitä se todellisuudessa on. Vastaavasti metamerkit "^" ja "$" osoittavat koko tekstin alun ja lopun. Jos tämä muokkaaja on määritetty, ne osoittavat vastaavasti kunkin tekstirivin alun ja lopun.
s Oletusmetamerkki on "." ei sisällä rivinvaihtomerkkiä määritelmässään. Ne. moniriviselle tekstille lauseke /.+/ palauttaa vain ensimmäisen rivin, ei koko tekstiä odotetusti. Tämän muuntajan määrittäminen poistaa tämän rajoituksen.
U Tekee kaikki kvantitatiiviset metamerkit oletuksena "ei ahneiksi". Joissakin kielen muunnelmissa (erityisesti PHP:ssä) "U":n sijaan käytetään merkkiä "g", joka vastaa paremmin merkitystä ("g" on lyhenne englannin sanoista "greedy", "greedy" ).

Taulukko näyttää suosituimmat ja tarpeellisimmat esimerkit säännöllisistä lausekkeista. Jotkut niistä saattavat tuntua monimutkaisilta ja hankalia, mutta yksityiskohtaisen tutkimuksen avulla ymmärrät varmasti.

Säännölliset lausekkeet PHP:ssä.

Säännöllisten lausekkeiden kanssa työskentelemiseen PHP:ssä on erikoistoimintoja, joista luettelo lyhyt kuvaus on annettu taulukossa:

int preg_match (merkkijonomalli, merkkijonon aihe [, matriisiosumat])

Toiminto tarkistaa, vastaako kohteen sisältö kuviomallia. Palauttaa 1, jos osumia löytyy, muussa tapauksessa palauttaa 0. Jos määrität valinnaisen matches array -parametrin, funktiota suoritettaessa siihen syötetään yksi elementti - ensimmäinen löydetty vastaavuus.

int preg_match_all (merkkijonomalli, merkkijonon aihe, taulukko vastaa [, int järjestys])
Funktio on identtinen edellisen kanssa, ainoalla erolla - se hakee koko tekstistä ja palauttaa KAIKKI osumataulukosta löytyneet osumat.
sekoitettu preg_replace (sekakuvio, sekoitettu korvaus, seka aihe [, väliraja])
Kuten molemmat edeltäjänsä funktiot, preg_replace etsii tekstiä, joka vastaa kuviota. Funktio korvaa kaikki löydetyt fragmentit parametreissa määritetyllä tekstillä.
sekoitettu preg_replace_callback (sekoitettu kuvio, sekoitettu takaisinsoitto, seka aihe [, väliraja])
Toiminto on laajennettu versio edellisestä. Suurin ero on, että tälle funktiolle välitetään parametreissa sen funktion nimi, joka analysoi tekstin ja luo korvaavan tekstin.
taulukko preg_split (merkkijonokuvio, merkkijonon aihe [, int limit [, int liput]])
Tämä funktio on samanlainen kuin explode()- ja split()-funktiot. Sen erikoisuus on, että erotin ei ole kiinteä merkkijono, vaan säännöllinen lauseke. Funktio jakaa lähdetiedot elementeiksi ja sijoittaa ne tulostaulukkoon.
taulukko preg_grep (merkkijonokuvio, taulukon syöttö)
Toiminto on suunniteltu säännölliseen taulukkohakuun. Hakua varten määritetään malli ja syötetietojen joukko, ja palautetaan matriisi, joka koostuu vain mallia vastaavista elementeistä.

Tarkasteltavien funktioiden luettelo ei ole läheskään täydellinen, mutta se on aivan riittävä säännöllisten lausekkeiden käytön aloittamiseen. Jos olet kiinnostunut tästä aiheesta, muista lukea lisää kirjallisuutta (esimerkiksi Friedlin kirja "Säännölliset lausekkeet"). Lisäksi koulutustarkoituksiin suosittelen asentamaan yhden erityisiä ohjelmia säännöllisten lausekkeiden (esimerkiksi "PCRE" tai "RegEx Builder") testaamiseen.

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ä siihen, mitä etsimme, 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 tämän esimerkin säännöllinen lauseke? 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äytä viesti "found!!" Kuten olet ehkä huomannut, mallimme sijaitsee kahden "/" välissä. Tässä tapauksessa "/"-symboli symboloi kuviomme 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 näiden suluissa oleva on määritelty yhdeksi merkiksi, tässä tapauksessa merkki 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. Jos haluat etsiä molempia merkkejä, kirjoita näin:

$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 todellakin vastaa merkkijonoamme, ja kun sen noudattaminen 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 rivi vaatii vähintään yhden merkin, käytä plusmerkkiä "*":n 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? Englanninkieliset 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, että koko merkkijonon on vastattava kuviota. 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 yksinkertaisesti malli, joka ohittaisi rivit, jotka eivät sisällä numeroita, eikä niitä, jotka sisältävät "Voi luoja, kuinka monta käsittämätöntä merkkiä!!!" . 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? Syötettiin symboli, mutta!

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

Näin ja pelastin sen!

Minun blogini

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

Säännöllisissä lausekkeissamme kuvailimme kaikki mahdolliset merkit, jotka voidaan sisällyttää linkkiin. Haluan myös kiinnittää huomiota lausekkeemme lainausmerkkeihin ja "/"-merkkeihin. Niiden edessä on 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. Näytön mukauttaminen suoritetaan 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? Ensin sinun on selvitettävä, mitkä merkit ovat sallittuja osoitteissa? Sikäli kuin tiedän, sallittuja merkkejä ovat mm.

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

Säännöllinen lauseke on siis 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, julistan sarjan ensimmäisen osan päättyneeksi!

Säännöllisten lausekkeiden avulla voit löytää merkkijonosta jaksoja, jotka vastaavat kuviota. Esimerkiksi malli "Vasya(.*)Pupkin" mahdollistaa sekvenssin löytämisen, kun sanojen Vasya ja Pupkin välillä on mikä tahansa määrä merkkejä. Jos meidän on löydettävä kuusi numeroa, kirjoitamme "(6)" (jos esimerkiksi kuudesta kahdeksaan numeroa, niin "(6,8)"). Tämä erottaa asiat, kuten merkistöilmaisimen ja vaaditun numeron ilmaisimen:

Merkkijoukon sijasta voidaan käyttää minkä tahansa merkin nimeä - voidaan määrittää tietty merkkijoukko (sekvenssit ovat tuettuja - mainittu "0-9"). Saattaa merkitä "paitsi tämä setti

hahmot". Merkkien määrää kutsutaan virallisessa PHP-dokumentaatiossa "quantifieriksi". Termi on kätevä eikä aiheuta väärinkäsityksiä. Joten kvantorilla voi olla joko tietty arvo - joko yksi kiinteä arvo ("(6)") tai numeerinen väli ("(6,8)") tai abstrakti "mikä tahansa luku, mukaan lukien 0" ("( " *"), "mikä tahansa luonnollinen luku

" - 1:stä äärettömään ("+": "asiakirja+.txt"), "joko 0 tai 1" ("?"). Tämän merkistön oletusarvo on yksi ("dokumentti.txt").

Yhdistelmien joustavampaa etsintää varten nämä "merkkijoukko - kvantori" -linkit voidaan yhdistää metarakenteiksi.

Kuten kaikki joustavat työkalut, säännölliset lausekkeet ovat joustavia, mutta eivät täysin: niiden käyttöalue on rajallinen. Jos esimerkiksi haluat korvata yksi kiinteä merkkijono tekstissä toisella, kiinteällä uudelleen, käytä str_replace. PHP-kehittäjät pyytävät itkien, ettet käytä monimutkaisia ​​funktioita ereg_replace tai preg_replace tähän tarkoitukseen, koska kun niitä kutsutaan, tapahtuu merkkijonojen tulkintaprosessi, joka kuluttaa vakavasti järjestelmäresursseja. Valitettavasti tämä on aloittelevien PHP-ohjelmoijien suosikki. Käytä säännöllisiä lausekefunktioita vain, jos et tiedä tarkalleen mikä merkkijono siellä on. Esimerkkejä: hakukoodi, jossa palvelumerkit ja lyhyet sanat leikataan pois hakumerkkijonosta sekä ylimääräiset välilyönnit (tai pikemminkin kaikki välilyönnit pakataan: "+" korvataan yhdellä välilyönnillä). Näiden toimintojen avulla tarkistan arvostelunsa jättäneen käyttäjän sähköpostin. On paljon tehtävissä, mutta on tärkeää pitää mielessä, että säännölliset lausekkeet eivät ole kaikkivoivia. Esimerkiksi monimutkainen korvaus On parempi olla tekemättä niitä. Loppujen lopuksi esimerkiksi yhdistelmä "(.*)" ohjelmatermeissä tarkoittaa kaikkien tekstin merkkien etsimistä. Ja jos mallia ei ole sidottu rivin alkuun tai loppuun, niin ohjelma "siirtää" itse mallia koko tekstin läpi, ja tuloksena on kaksoishaku tai pikemminkin haku neliö. Ei ole vaikea arvata, että toinen yhdistelmä "(.*)" tarkoittaa iterointia kuution yli ja niin edelleen. Nosta vaikkapa 5 kilotavua tekstiä kolmanteen potenssiin. Se osoittautuu 125 000 000 000 (sanoilla: satakaksikymmentäviisi miljardia operaatiota). Tietenkin, jos otat tiukan lähestymistavan, operaatioita ei tule niin paljon, vaan neljästä kahdeksaan kertaa vähemmän, mutta itse numeroiden järjestys on tärkeä.

Hahmosarja
. pistemikä tahansa hahmo
[] hakasulkeetmerkkiluokka ("mikä tahansa"). Esimerkiksi
[^] negatiivinen merkkiluokka ("kaikki paitsi")
- viivasekvenssin nimitys merkkiluokassa ("" numeroa)
\d Vain numeroita
\D[^0-9] Numeroiden lisäksi
\w Kirjaimet ja numerot
\W[^a-z0-9]Paitsi kirjaimet ja numerot
\s Välilyönnit: välilyönti, sarkain, rivinvaihto
\S[^ ] Paitsi välilyönnit
| (yksi|toinen)Tässä paikassa voi olla jokin listatuista vaihtoehdoista, esimerkiksi: (Vasya|Petya|Masha). Jos et halua sen kuuluvan valintaan, käytä (?: ...)

Älä käytä merkkiluokkaa vain yhden merkitsemiseen ("+":n sijaan "+" sopii mainiosti). Älä kirjoita pistettä merkkiluokkaan, tämä on mikä tahansa merkki, niin muut luokan merkit ovat yksinkertaisesti tarpeettomia (ja sisään negatiivinen luokka tämä johtaa kaikkien merkkien kieltämiseen).

Kvantifioija

Kvantori voi ilmaista sekä tietyn arvon että rajat. Jos määritetty luku on kvantisoijan rajoissa, lausekkeen fragmentin katsotaan vastaavan jäsennettävää merkkijonoa. Syntaksi:

{ }

{ , }

Jos sinun on ilmoitettava vain vaadittu vähimmäisarvo, mutta enimmäismäärää ei ole, kirjoita pilkku äläkä kirjoita toista numeroa: "(5,)" ("minimi 5"). Yleisimmin käytetyille kvantoreille on erityisiä merkintöjä:

Käytännössä tällaisia ​​symboleja käytetään useammin kuin kiharaisia ​​aaltosulkeita.

Ankkurit

Näiden merkkien on oltava rivin alussa ja aivan lopussa.

Ahneus Kysymysmerkki toimii myös kvantifioijan minimoijana:
.*?

Esimerkin tulos: Ahne versio: lihavoitu teksti [b]ja tässä - vielä lihavoitumpi palautettu Laiska versio: lihavoitu teksti [b]ja tässä - vielä lihavoitumpi palautettu

Mallirivi, kuten olet jo huomannut, alkaa ja päättyy vinoviivalla. Toisen jälkeen on parametrit:

ikirjainkoon välitön haku
m

monirivinen tila. Oletusarvoisesti PCRE etsii kuvioosumia vain yhdeltä riviltä, ​​ja "^"- ja "$"-merkit vastaavat vain koko tekstin alkua ja loppua.

sKun tämä asetus on asetettu, "^" ja "$" vastaavat yksittäisten rivien alkua ja loppua.
symboli "." (piste) vastaa myös rivinvaihtoa (oletus ei)A
ankkuroi tekstin alkuunE
Upakottaa "$"-merkin vastaamaan vain tekstin loppua.
Ohitetaan, jos parametri m on asetettu.Kääntää "ahneuden" jokaiselle kvantorille (jos kvantisoijaa seuraa "?", kyseinen kvantori ei ole enää "ahne").
e
  • Korvaava merkkijono tulkitaan PHP-koodiksi.
  • Toiminnot säännöllisten lausekkeiden kanssa työskentelemiseen preg_grep preg_match - Suorittaa vastaavuuden tarkistuksen
  • säännöllinen lauseke
  • . Tämä toiminto etsii vain ensimmäistä ottelua! preg_match_all preg_quote - Vaihtaa merkit säännöllisissä lausekkeissa.
  • Ne. lisää kauttaviivat ennen kaikkia palvelumerkkejä (esimerkiksi sulkuja,
  • hakasulkeet
  • jne.), jotta ne otetaan kirjaimellisesti. Jos sinulla on käyttäjän syöte ja tarkistat sen säännöllisillä lausekkeilla, on parempi välttää palvelumerkit saapuvassa muuttujassa ennen kuin teet niin
preg_replace

preg_replace_callback - Suorittaa säännöllisen lausekkeen haun ja korvauksen

preg_split

preg_grep

preg_grep-funktio – Palauttaa joukon esiintymiä, jotka vastaavat kuviota

Syntaksi

taulukko preg_grep (merkkijonokuvio, taulukon syöttö [, int liput])
preg_grep() palauttaa taulukon, joka koostuu syötetaulukon elementeistä, jotka vastaavat annettua kuviota. Liput-parametri voi saada seuraavat arvot: PREG_GREP_INVERT
Jos tämä lippu on asetettu, preg_grep()-funktio palauttaa ne
taulukon elementtejä

, jotka eivät vastaa annettua kuviomallia.

Preg_grep():n palauttama tulos käyttää samoja indeksejä kuin alkuperäinen tietotaulukko. Jos tämä käyttäytyminen ei sovi sinulle, käytä array_values()-funktiota preg_grep():n palauttamassa taulukossa uudelleenindeksoimiseksi.

Esimerkkikoodi:

preg_split

// Palauttaa kaikki taulukkoelementit // jotka sisältävät liukulukuja $fl_array = preg_grep("/^(\d+)?\.\d+$/", $array);

preg_match preg_match-funktio - Suorittaa vastaavuuden säännölliseen lausekkeeseen osuma on määritetty, se täytetään hakutuloksilla. $matches-elementti sisältää sen osan merkkijonosta, joka vastaa koko kuviota, $matches sisältää merkkijonon osan, joka vastaa ensimmäistä alikuviota ja niin edelleen.

liput voivat saada seuraavat arvot:

PREG_OFFSET_CAPTURE

Haku suoritetaan vasemmalta oikealle rivin alusta. Valinnaista offset-parametria voidaan käyttää vaihtoehtoisen aloituspaikan määrittämiseen haulle. Samanlainen tulos voidaan saavuttaa korvaamalla subjekti substr())($subject, $offset).

Preg_match()-funktio palauttaa löydettyjen osumien määrän. Tämä voi olla 0 (osuuksia ei löytynyt) tai 1, koska preg_match() lakkaa toimimasta ensimmäisen löydetyn osuman jälkeen. Jos sinun on löydettävä tai laskettava kaikki osumat, sinun tulee käyttää preg_match_all()-funktiota. Preg_match()-funktio palauttaa arvon FALSE, jos suorituksen aikana tapahtuu virheitä.

Suositus: Älä käytä preg_match()-funktiota, jos sinun on tarkistettava, onko tietyssä merkkijonossa alimerkkijono. Käytä strpos() tai strstr() tähän, koska ne suorittavat tehtävän paljon nopeammin.

Esimerkkikoodi Esimerkkikoodi Esimerkkikoodi Esimerkin tulos:

verkkotunnuksen nimi on: site

preg_match_all

preg_match_all-funktio - Suorittaa yleisen kuviohaun merkkijonosta

preg_split

int preg_match_all (merkkijonokuvio, merkkijonon aihe, taulukon osumat [, int liput [, int offset]])

Hakee merkkijonon aiheesta kaikkia kaavakuvion osumia ja sijoittaa tuloksen osumataulukkoon lippujen yhdistelmän määräämässä järjestyksessä.

Ensimmäisen osuman löytämisen jälkeen seuraavat haut eivät suoriteta merkkijonon alusta, vaan viimeisimmän löydetyn esiintymän lopusta.

Valinnainen lippuparametri voi yhdistää seuraavat arvot (huomaa, että PREG_PATTERN_ORDER:n käyttäminen samanaikaisesti PREG_SET_ORDER:n kanssa on merkityksetöntä):

PREG_PATTERN_ORDER
Jos tämä lippu on asetettu, tulos järjestetään seuraavasti: $matches-elementti sisältää joukon kuvion täydellisiä esiintymiä, $matches-elementti sisältää joukon ensimmäisen alikuvion esiintymiä ja niin edelleen.

Esimerkkikoodi Esimerkin tulos: esimerkki: , tämä on testiesimerkki: , tämä on testi

Kuten näemme, $out sisältää joukon kuvion täydellisiä esiintymiä, ja $out-elementti sisältää joukon tageissa olevia alimerkkijonoja.

PREG_SET_ORDER
Jos tämä lippu on asetettu, tulos järjestetään seuraavasti: $matches-elementti sisältää ensimmäisen esiintymisjoukon, $matches-elementti sisältää toisen esiintymisjoukon ja niin edelleen.

Esimerkkikoodi Esimerkin tulos: esimerkki: , esimerkki: tämä on testi, tämä on testi

Tässä tapauksessa $matches-taulukko sisältää ensimmäisen osumajoukon, nimittäin: $matches-elementti sisältää koko kuvion ensimmäisen esiintymän, $matches-elementti sisältää ensimmäisen alikuvion ensimmäisen esiintymän ja niin edelleen. Samoin $matches-taulukko sisältää toisen joukon osumia ja niin edelleen jokaiselle löydetylle osumalle.

PREG_OFFSET_CAPTURE
Jos tämä lippu on määritetty, kunkin löydetyn osamerkkijonon sijainti lähdemerkkijonossa ilmoitetaan. On tärkeää muistaa, että tämä lippu muuttaa palautettujen tietojen muotoa: jokainen esiintymä palautetaan taulukkona, jonka nollaelementti sisältää löydetyn osamerkkijonon ja ensimmäinen elementti sisältää offsetin.

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

Haku suoritetaan vasemmalta oikealle rivin alusta. Valinnaista offset-parametria voidaan käyttää vaihtoehtoisen aloituspaikan määrittämiseen haulle. Samanlainen tulos voidaan saavuttaa korvaamalla subjekti substr())($subject, $offset).

Palauttaa löydetyn kuvion esiintymisten lukumäärän (voi olla nolla) tai EPÄTOSI, jos suorituksen aikana tapahtui virheitä.

Esimerkkikoodi Esimerkkikoodi Esimerkin tulos: osunut: lihavoitu teksti osa 1: osa 2: lihavoitu teksti osa 3: osunut: klikkaa minua osa 1: osa 2: napsauta minua osa 3: preg_quote

preg_quote-funktio – Poistaa merkit säännöllisissä lausekkeissa

preg_split

merkkijono preg_quote (merkkijono str [, merkkijonon erotin])

Preg_quote()-funktio ottaa merkkijonon str ja lisää kenoviivan jokaisen erikoismerkin eteen. Tästä voi olla hyötyä, jos malli sisältää merkkijonomuuttujia, joiden arvo saattaa muuttua skriptin toiminnan aikana.

Jos ylimääräinen erotinparametri on määritetty, se myös pakotetaan. Tämä on hyödyllistä PCRE-toiminnoissa käytettävän rajoittimen välttämiseksi. Yleisin erotin on "/"-merkki.

Säännöllisissä lausekkeissa seuraavat merkit katsotaan palvelumerkkeiksi: . \\ + * ? [ ^ ] $ () ( ) = !< > | :

Esimerkkikoodi Esimerkkikoodi Esimerkin tulos: Tämä kirja on *erittäin* vaikea löytää. preg_replace

preg_replace-funktio - Suorittaa haun ja korvauksen säännöllisen lausekkeen avulla

preg_split

sekoitettu preg_replace (sekakuvio, sekoitettu korvaus, seka aihe [, väliraja])

Etsii merkkijonon aiheesta kaavaosumia ja korvaa ne korvauksella. Jos raja-parametri on määritetty, mallin raja-esiintymät korvataan; jos raja jätetään pois tai se on yhtä suuri kuin -1, kaikki kuvion esiintymät korvataan.

Korvaus voi sisältää viittauksia muodossa \\n tai (PHP 4.0.4:stä lähtien) $n, jälkimmäinen on parempi. Jokainen tällainen viittaus korvataan suluissa olevaa n:ttä alikuviota vastaavalla alimerkkijonolla. n voi saada arvot välillä 0 - 99, jolloin viite \\0 (tai $0) vastaa koko alikuvion esiintymää numeroitu vasemmalta oikealle alkaen yhdestä .

Käytettäessä jokerimerkkien korvaamista alikuvion viittauksilla voi syntyä tilanne, jossa maskia seuraa välittömästi numero. Tässä tapauksessa merkintä, kuten \\n, aiheuttaa virheen: viittaus ensimmäiseen alikuvioon ja sen jälkeen numeroon 1 kirjoitetaan muodossa \\11, joka tulkitaan viittaukseksi yhdenteentoista alikuvioon. Tämä väärinkäsitys voidaan poistaa käyttämällä konstruktiota \$(1)1, joka ilmaisee erillisen viittauksen ensimmäiseen osakuvioon, jota seuraa numero 1.

Esimerkkikoodi

Tämän esimerkin tulos on:

Jos funktion suorituksen aikana löydetään kaavavastaavuus, muokattu aihearvo palautetaan, muuten alkuperäinen aihe palautetaan.

Parametrin preg_replace() kolme ensimmäistä parametria voivat olla yksiulotteisia taulukoita. Jos taulukko käyttää avaimia, taulukkoa käsiteltäessä ne otetaan siinä järjestyksessä, jossa ne taulukossa sijaitsevat. Avainten määrittäminen taulukkoon kuviota ja korvaamista varten on valinnaista. Jos päätät käyttää indeksejä vastaamaan korvaamiseen liittyviä malleja ja merkkijonoja, käytä ksort()-funktiota jokaisessa taulukossa.

Karhunmusta hidas hyppäsi laiskan koiran yli.

Käyttämällä ksort()-komentoa saamme halutun tuloksen:

Hidas musta karhu hyppäsi laiskan koiran yli.

Jos aiheparametri on taulukko, kuviohaku ja korvaus suoritetaan jokaiselle sen elementille. Palautettu tulos on myös taulukko.

Jos malli- ja korvausparametrit ovat taulukoita, preg_replace() noutaa vuorotellen elementtiparin molemmista taulukoista ja käyttää niitä haku- ja korvaustoimintoon. Jos korvaava taulukko sisältää enemmän elementtejä kuin kuvio, puuttuvat elementit korvataan tyhjillä merkkijonoilla. Jos kuvio on taulukko ja korvaus on merkkijono, jokainen kuviotaulukon elementti etsitään ja korvataan kuviolla (kaikki taulukon elementit ovat vuorollaan kuvioita, kun taas korvaava merkkijono pysyy kiinteänä). Vaihtoehto, jossa kuvio on merkkijono ja korvaus on matriisi, ei ole järkevää.

/e-muuttaja muuttaa preg_replace()-funktion käyttäytymistä siten, että korvaava parametri tulkitaan tarvittavien korvausten suorittamisen jälkeen PHP-koodiksi ja vasta sitten sitä käytetään korvaamiseen. Kun käytät tätä muokkausta, ole varovainen: korvaavan parametrin tulee sisältää kelvollinen PHP-koodi, muuten preg_replace()-funktiokutsun sisältävällä rivillä tapahtuu syntaksivirhe.

Esimerkkikoodi: Korvaa useilla kuvioilla

Tämä esimerkki tulostaa:

$aloituspäivä = "27.5.1999";

Esimerkkikoodi: /e-muuntimen käyttö Esimerkkikoodi: Muuntaa kaikki HTML-tunnisteet isoiksi preg_replace_callback

preg_replace_callback-toiminto – Suorittaa säännöllisen lausekkeen haun ja korvaamisen takaisinsoittotoiminnolla

preg_split

sekoitettu preg_replace_callback (sekoitettu kuvio, takaisinsoitto, seka aihe [, int limit])

Tämän funktion käyttäytyminen on monella tapaa samanlainen kuin preg_replace(), paitsi että korvausparametrin sijasta on määritettävä takaisinsoittofunktio, joka välitetään syöteparametrina joukko löydettyjä esiintymiä. Odotettu tulos on merkkijono, joka korvataan.

Esimerkkikoodi (.*?).")", $xml, $matches, PREG_PATTERN_ORDER);

palauttaa $ matches; )

Etsi XHTML/XML-tageja tietyllä attribuutilla

Tämä toiminto on hyvin samanlainen kuin edellinen, paitsi että voit antaa tunnisteelle halutun attribuutin. Voit esimerkiksi löytää helposti .

Funktio get_tag($attr, $arvo, $xml, $tag=null) ( if(on_null($tag)) $tag = "\w+"; else $tag = preg_quote($tag); $attr = preg_quote($ attr = preg_quote($tag_regex = "/]*$attr\s*=\s*")$arvo\\2[^>]*>(). .*?)/" preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); palauttaa $osumat; )

Toinen hyödyllinen työkalu verkkokehittäjille! Sen avulla voit etsiä / tarkistaa heksadesimaaliväriarvot.

$string = "#555555"; if (preg_match("/^#(?:(?:(3))(1,2))$/i", $string)) ( echo "esimerkki 6 onnistui."; )

Hae artikkelin otsikkoa

Tämä koodinpätkä löytää ja näyttää tekstin HTML-sivun tunnisteiden sisällä.

$fp = fopen("http://www.catswhocode.com/blog","r"); while (!feof($fp))( $sivu .= fgets($fp, 4096); ) $titre = eregi("(.*)",$sivu,$regs); echo $regs; fclose($fp);

Jäsennetään Apache-lokeja

Useimmat sivustot toimivat tunnetulla Apache-verkkopalvelimella. Jos sivustosi on yksi niistä, miksi et käyttäisi PHP:tä ja säännöllisiä lausekkeita Apache-lokien jäsentämiseen?

//Lokit: Apache-verkkopalvelin //Onnistuneet osumat vain HTML-tiedostoihin. Hyödyllinen sivun näyttökertojen laskemiseen. "^((?#asiakkaan IP-osoite tai verkkotunnuksen nimi)S+)s+((?#perustodennus)S+s+S+)s+[((?#päivämäärä ja aika)[^]]+)]s+"(?: GET|POSTA|HEAD) ((?#tiedosto)/[^ ?]+?.html?)??((?#parametrit)[^ ?]+)? HTTP/+"s+(?#tilakoodi)200s+((?#tavua siirretty)[-0-9]+)s+"((?#viittaus)[^"]*)"s+"((?#käyttäjäagentti )[^"]*)"$" //Lokit: Apache-verkkopalvelin //vain 404-virheet "^((?#asiakkaan IP-osoite tai verkkotunnuksen nimi)S+)s+((?#perustodennus)S+s+S+) s+[((?#päivämäärä ja aika)[^]]+)]s+"(?:GET|POSTA|HEAD) ((?#tiedosto)[^ ?"]+)??((?#parametrit)[ ^?"]+)? HTTP/+"s+(?#tilakoodi)404s+((?#tavua siirretty)[-0-9]+)s+"((?#viittaus)[^"]*)"s+"((?#käyttäjäagentti )[^"]*)"$"

Lainausmerkkien korvaaminen älykkäillä lainausmerkeillä

Jos olet typografian ystävä, tulet rakastamaan tätä säännöllistä lauseketta, joka korvaa tavalliset lainausmerkit älykkäillä lainausmerkeillä. Samanlaista säännöllistä lauseketta käytetään WordPressissä sivun sisällössä.

Preg_replace("B"b([^"x84x93x94rn]+)b"B", "?1?", $teksti);

Kattava salasanan vahvistus

Tämä säännöllinen lauseke varmistaa, että tekstikenttään syötetään vähintään kuusi merkkiä, numeroa, yhdysmerkkiä ja alaviivaa.

Tekstikentässä on oltava vähintään yksi iso kirjain, yksi pieni merkki ja yksi numero.

"A(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?)(?=[-_a-zA-Z0-9]*?) [-_a-zA-Z0-9](6,)z"

WordPress: Säännöllisen lausekkeen käyttäminen kuvien hakemiseen viestistä

Koska monet teistä ovat WordPressin käyttäjiä, saatat tarvita koodin, jonka avulla voit saada kaikki kuvat artikkelin tekstistä ja näyttää ne.

Jos haluat käyttää tätä koodia, liitä se mihin tahansa teemasi tiedostoon.