Säännöllinen lauseke on erityinen kuvio, jota voidaan käyttää tekstitiedoissa olevien tiettyjen merkkijonojen täsmäämiseen, etsimiseen ja korvaamiseen. Se on voimakas ominaisuus mille tahansa ohjelmointikielelle. Sitä käytetään pääasiassa erilaisten lomakkeiden validointeihin, kuten sähköpostin vahvistamiseen, puhelimen muodon tarkistamiseen, kirjautumislomakkeen käyttäjänimen ja salasanan kenttien vahvistamiseen jne. Mitä tahansa tekstin sisältöä voidaan etsiä ja korvata säännöllisellä lausekkeella kuvio. Sitä kutsutaan myös regexiksi tai RegExp: ksi. Reggex -kuvion määrittämiseen käytetään erityyppisiä symboleja.
PHP: ssä on monia sisäänrakennettuja toimintoja säännölliselle lausekkeelle. preg_match () -funktio on yksi niistä. Tätä toimintoa käytetään vastaamaan tiettyä mallia merkkijonotiedoissa. Tässä opetusohjelmassa selitetään, kuinka preg_match () -toimintoa voidaan käyttää PHP: ssä eri tehtävien suorittamiseen.
Syntaksi:
Int taiväärä preg_match (merkkijono$ kuvio,merkkijono$ aihe [, matriisi &$ vastaa = tyhjä [,int$ lippuja = 0 [,int$ offset = 0]]])Tämä funktio voi kestää viisi argumenttia. Ensimmäinen argumentti, $ kuvio , on pakollinen, mikä määrittää vastaavuuden mallin. Toinen argumentti, $ aihe , on pakollinen ja sisältää merkkijonotiedot, joissa mallia käytetään. Kolmas argumentti, $ vastaa , on valinnainen ja palauttaa taulukon ottelun perusteella. Neljäs argumentti, $ lippuja , on valinnainen, joka sisältää erityyppisiä lippuarvoja ottelun perusteella. Viides argumentti, $ offset , on valinnainen, ja sitä voidaan käyttää haun aloituskohdan määrittämiseen.
Esimerkki 1: Sovita kuvio kirjainkoolla ja kirjainkokolla
Seuraavassa esimerkissä esitetään preg_match () -funktion käyttö merkkijonon vastaamiseksi kirjainkoolla ja kirjainkokolla. Luo PHP -tiedosto seuraavalla komentosarjalla.
Tässä kolmea mallia käytetään kolmessa preg_match () -funktiossa. Ensimmäinen malli, '/Kuten/', käytetään merkkijonon täsmäyttämiseen kirjainkoolla. Toinen kuvio, '/Kuten/' , käytetään merkkijonon täsmäyttämiseen kirjainkoolla. Kolmas kuvio, 'Kuten minä' , käytetään merkkijonon sovittamiseen kirjainkoolla erottamattomalla tavalla. search_pattern () -funktio on määritetty komentosarjassa käyttämään preg_match () -funktiota vastaavuuden määrittämiseen, ja se tulostaa viestin tämän funktion palautetun arvon perusteella.
// Määritä teksti
$ teksti = 'Pidän PHP: stä. Pidän myös JavaScriptistä. ';
// Määrittele kolmenlaisia kuvioita
$ kuvio 1 = '/Kuten/';
$ kuvio2 = '/Kuten/';
$ kuvio 3 = '/Kuten minä';
// Määritä toiminto tekstin kuvion etsimiseksi
toimintosearch_pattern($ kuvio, $ merkkijono)
{
jos( preg_match ($ kuvio, $ merkkijono))
heitti pois 'Hakutulos: Kuvio vastaa -$ kuvio
'';
muu
heitti pois 'Hakutulos: Mallin vastaavuutta ei löydy -$ kuvio
'';
}
// Tulosta alkuperäinen teksti
heitti pois 'Alkuperäinen teksti on: $ teksti
'';
// Soita funktiolle kolme kertaa saadaksesi kolme mallia
search_pattern($ kuvio 1, $ teksti);
search_pattern($ kuvio2, $ teksti);
search_pattern($ kuvio 3, $ teksti);
?>
Lähtö :
Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu palvelimelta. Ensimmäinen rivi näyttää tekstin, josta kuvioita etsittiin. Toinen rivi näyttää ensimmäisen kuvion tuloksen. Kolmas rivi näyttää toisen kuvion tuloksen. Neljäs rivi näyttää kolmannen kuvion tuloksen.
Esimerkki 2: Vahvista URL -osoite
Seuraava esimerkki näyttää tavan vahvistaa URL -osoite käyttämällä preg_match () -funktiota. Luo PHP -tiedosto seuraavalla komentosarjalla.
Muuttujalle $ url määritetään URL -osoite testausta varten. Merkkijonoa '@^(?: Https: //)? ([^/]+) @I' käytetään mallina preg_match () -funktiossa sen tarkistamiseksi, onko URL -osoite kelvollinen vai ei. Jos se on kelvollinen, isäntänimi ja verkkotunnus tulostetaan, muuten virheviesti tulostetaan.
// Määritä URL -osoite
$ url = 'https://www.linuxhint.com';
// Määritä URL -osoitteen vahvistusmalli
$ kuvio ='@^(?: https: //)? ([^/]+) @i';
// Tarkista, onko URL -osoite kelvollinen vai ei
jos( preg_match ($ kuvio, $ url, $ ottelut 1))
{
// Tulosta onnistumisviesti
heitti pois 'URL -osoite on kelvollinen.
'';
// Tulosta taulukko, joka sisältää vastaavuuden arvot
heitti pois 'Taulukon arvot ovat:';
print_r ($ ottelut 1);
// Hae ja tulosta isäntäarvo
$ isäntä = $ ottelut 1[1];
heitti pois ''
Isännän nimi on:$ isäntä'';
// Hae verkkotunnuksen nimi isäntäarvosta
preg_match ('' /[^.-lex.europa.eu+.[^.íritu+$/ '', $ isäntä, $ ottelut2);
heitti pois ''
Verkkotunnuksen nimi on:{$ match2 [0]}'';
}
muu
{
// Tulosta virheilmoitus
heitti pois 'Virheellinen URL.';
}
?>
Lähtö :
Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu palvelimelta. Skriptissä annettu URL -osoite on kelvollinen. Tulos näyttää siis $ -haun arvot, URL -osoitteen isäntänimen ja URL -osoitteen verkkotunnuksen.
Esimerkki 3: Hakumalli lippu- ja siirtymäarvoilla
Seuraavassa esimerkissä esitetään lippu- ja siirtymäarvojen käyttö preg_match () -funktiossa. Luo PHP -tiedosto seuraavalla komentosarjalla.
Käsikirjoituksessa käytetään kolmea mallia kolmen tyyppisille hauille. Ensimmäisessä preg_match () -funktiossa kuviona käytetään '/(bangla) (desh)/' ja lippuarvoa PREG_OFFSET_CAPTURE. Arvot $ vastaa muuttuja tulostaa ensimmäisen preg_match () -funktion tuloksen perusteella. Toisessa preg_match () -funktiossa kuviona käytetään '/(bangla) (iloinen)*(desh)/i' ja lippuarvoa PREG_UNMATCHED_AS_NULL käytetään. Jos jokin kuvion osa ei täsmää, taulukkoon tallennetaan NULL -arvo. Arvot $ vastaa muuttuja tulostaa toisen preg_match () -funktion tuloksen perusteella. Kolmannessa preg_match () -funktiossa kuviona käytetään '/glad/', lippuarvoa PREG_OFFSET_CAPTURE ja 3 käytetään siirtymäarvona. Arvot $ vastaa muuttuja tulostaa kolmannen preg_match () -funktion tuloksen perusteella.
// Määritä tekstiarvo
$ teksti = 'Bangladesh';
// Määrittele kolmen tyyppisiä malleja
$ kuvio 1 = ' / (bangla) (desh) / i';
$ kuvio2 = ' / (bangla) (iloinen) * (desh) / i';
$ kuvio 3 = '/iloinen/';
// Käytä PREG_OFFSET_CAPTURE -lippua
preg_match ($ kuvio 1, $ teksti, $ vastaa,PREG_OFFSET_CAPTURE);
heitti pois '
';
print_r ($matches);
echo '
'';
// Käytetään PREG_UNMATCHED_AS_NULL -lippua
preg_match ($ kuvio2, $ teksti, $ vastaa,PREG_UNMATCHED_AS_NULL);
heitti pois '
';
print_r ($matches);
echo '
'';
// Käytä PREG_OFFSET_CAPTURE -lippua ja siirtymäarvoa
preg_match ($ kuvio 3, $ teksti, $ vastaa,PREG_OFFSET_CAPTURE, 3);
heitti pois '
';
print_r ($matches);
echo '';
?>
Lähtö :
Seuraava tulos tulee näkyviin, kun komentosarja on suoritettu palvelimelta.
Johtopäätös
Funktion preg_match () käyttöä on selitetty tässä opetusohjelmassa useilla esimerkeillä. Tässä on myös esitetty tämän funktion eri argumenttien käyttö. Lukijat voivat käyttää tätä toimintoa oikein käsikirjoituksessaan tämän opetusohjelman lukemisen jälkeen.