käyttäen säännöllisiä lausekkeita PHP PHP säännöllisiä lausekkeita - Osa VII Johdanto Olemme nähneet joitakin käyttötapoja lausekeryhmän PHP. Tiedämme kuinka tarkistaa jos regex löytyy aihe merkkijono. Tiedämme, miten löytää aseman Hyväksytty regex aihe merkkijono. Huomaa, että aihe merkkijono voi olla koko sivun tekstiä. Tässä osa sarjasta, me oppia kaksi tärkeää ominaisuuksia nimeltään "Etsi ja korvaa" ja "Split Käyttö". Ennen kuin jättää tämän osan me puhumme regex erotin. Aloitetaan hyvin pieni osio nimeltä muuttujat Regex.
Muuttuja Regex Ennen katsomme kaksi ominaisuutta, olkaamme tietoisia siitä, että regex kuvio voi olla muuttujia. Seuraava koodi toimii: $ var = "am"; $ Var = "am"; jos (preg_match ("/I $ var /", "Olen yksi.")) echo "Hyväksytty". "Muu echo" ei vastaa "."?> Täällä meillä on muuttuja, $ var = "am"; Regex on /I $ var /joka on /olen /"minä" rakenteessa on korvattu $ var; ja vastaavat esiintyy Etsi ja korvaa Voit etsiä ottelun aihe merkkijono ja on osa jouset vastinparitestiä vaihdettava. Mieti seuraavia aihe merkkijono: "Olen mies. Olet mies.
" Sub merkkijono "mies" esiintyy tässä asiassa kahdessa paikassa. Voit olla jokaisen esiintymisen osa merkkijonon "mies" korvattu nainen. Seuraava koodi tekee tämän: $ finalStr = preg_replace ("/mies /", "nainen", "Minä olen mies. Olet mies."); echo $ finalStr; ?> Sinulla on toiminto, preg_replace (). Ensimmäinen argumentti tämä toiminto on regex. Toinen argumentti on osa merkkijono korvata osa merkkijono sovitettava regex. Kolmas väite on aihe. Tämä funktio palauttaa aihe merkkijonon, jossa kaikki Hyväksytty osa jouset on korvattu. Jos ei täsmänneet, alkuperäinen merkkijono palautetaan.
Jos virhe on tapahtunut, NULL palautetaan. Toinen lausunto edellä koodi kaikuja palautetaan merkkijono. Tämä on mitä on vastakaikua: Olen nainen. Sinä olet nainen. Joten, voit käyttää preg_replace () toiminto ja etsi osa jousille regex ja kaikki osa jouset löytyi korvataan jollakin korvaava osa merkkijono. Korvaava osa merkkijono on toisen funktion argumentti. Jos on monta ottelua, on mahdollista, että voit korvata osa niistä, joka alkaa ensimmäisestä. Tätä varten tarvitset neljäsosa valinnainen argumentti. Harkitse seuraava aihe: "Minä olen mies. Olet mies. Tämä henkilö on mies.
" On olemassa kolme sanan esiintymiä, "mies". Olkaamme on vain kaksi ensimmäistä vaihdettava. Tämä seuraava koodi tekee tämän: $ finalStr = preg_replace ("/mies /", "nainen", "Minä olen mies. Olet mies. Tämä henkilö on mies.", 2); echo $ finalStr; ?> Neljäs väite on lisätty. Haluamme kaksi ensimmäistä esiintymät osa merkkijonon, "mies" korvattava, joten laitoimme 2 neljäntenä väitteen. Neljäs väite on tapahtumien määrä ottelun, jonka haluat korvata. Toinen toteamus koodi edellä kaikuja tuloksena narua, olen nainen. Sinä olet nainen. Tämä henkilö on mies. Tämä neljäs väite on valinnainen.
Jos laitat -1 siellä se tarkoittaa haluat kaikki esiintymät sovitettu osa merkkijono on korvattava; tämä on oletus käyttäytyminen ilman -1. Seuraava esimerkki valaisee -1. $ FinalStr = preg_replace ("/mies /", "nainen", "Minä olen mies. Olet mies. Tämä henkilö on mies.", -1); echo $ finalStr; ?> Tuotos koodi on: Olen nainen. Sinä olet nainen. Tämä henkilö on nainen. Toistaiseksi olemme nähneet preg_match () funktio, preg_match_all () funktio ja nyt preg_replace () toiminto. Counting määrä korvaavia Valmistettu On viidesosa valinnainen argumentti preg_replace () toiminto. Tämä on muuttuja.
Voit valita mitä nimi haluat muuttujan. Seuraava koodi kuvaa tätä: $ finalStr = preg_replace ("/mies /", "nainen", "Olen mies. Olet mies. Tämä henkilö on mies.", 2, $ count); echo $ finalStr. "echo $ count." ?> Katsokaa väitteet toiminto erittäin hyvin. Ensimmäinen argumentti on regex. Toinen on korvaava merkkijono. Kolmas on aihe; se on kolme sanan esiintymiä, "mies". Neljäs antaa määrä korvaavia haluamme; se on 2. Viides on muuttuja, joka pitää useita vaihtoja tosiasiallisesti. Lähtö koodi on, olen nainen. Sinä olet nainen. Tämä henkilö on mies.
2 Neljäs väite halusi kaksi vaihdot ja kaksi vaihtoja tehtiin. Viimeinen toteamus koodi näyttää määrää korvaavan tosiasiallisesti; se näyttää muuttujan arvo, joka on viides argumentti. Ei ole tarpeen voit ovat julistaneet tämän muuttujan muualla, ennen. On mahdollista, että et tiedä määrä otteluita aihe, ja haluaisi korvata kaikki mahdolliset ottelut ja tietää määrä korvaavia. Tällöin neljäs perustelu on -1 ja tarvitsisit viides väite. Seuraava koodi kuvaa tätä: $ finalStr = preg_replace ("/mies /", "nainen", "Olen mies. Olet mies. Tämä henkilö on mies.", -1, $ Count); echo $ finalStr.
"echo $ count." ?> Tässä kaikki ottelut korvaisi ja $ count vaikeuttaisivat määrä korvaavia, suorituksen jälkeen toiminto. Lähtö edellä koodi on, olen nainen. Sinä olet nainen. Tämä henkilö on nainen. 3 Kolme on määrä korvaavia tehty. Split Käyttö on toiminto tätä. Syntaksi toiminto on: array preg_split (merkkijono $ regex, string $ aihe) Jakotoiminnan preg_split () jakaa merkkijonon joukko osa jousille ja palauttaa matriisin. Se käyttää regex erottimena. Olla oletus regex ole mitään osa palasi array.
Mieti seuraavia aihe merkkijono: $ aihe = "yksi kaksi kolme"; Jos tiedämme regex kuvio tunnistaa sanavälin, voimme jakaa tämä merkkijono joukko koostuu sanoista, "yksi", "kaksi" ja "kolme". \\ On merkki luokka avaruuteen. \\ + Täsmää tila, yhden tai useamman kerran. Regex erottaa edellä sanat on \\\\ + \\ Oletamme, että tila saattaa syntyä lyömällä välilyöntiä enemmän kuin kerran. Seuraava koodi valaisee Jakotoiminnan edellä kuvio. $ Aihe = "yksi kaksi kolme"; $ Arr = preg_split ("/\\ + /", $ aihe); echo $ arr [0]. "echo $ arr [1]." echo $ arr [2].
"?> Vuonna aihe merkkijonon sanat erotetaan välilyönneillä. lähtö edellä koodi on: yksi kaksi kolme valunut toiminta on jaettu sanat aihe merkkijono käyttäen väli sanojen, ja laittaa jokaisen sanan osana palasi array. On mahdollista saada sanoja merkkijono pilkulla erotettuna ja tilaa, kuten $ aihe = "yksi, kaksi, kolme" regex erottaa nämä sanat on: /\\ + /seuraava koodi kuvaa tätä: $ aihe = "yksi, kaksi, kolme"; $ sov = preg_split ("/, \\ + /", $ aihe); echo $ arr [0]. " echo $ arr [1]. "echo $ arr [2].
" ?> Lähtö edellä koodi on: yksi kaksi kolme yksinkertaistettu syntaksi preg_replace () on: $ StrWithRepl = preg_replace (merkkijono regex, string $ korvaaminen, string $ aihe); Vuodesta selitys olen antanut ennen, syntaksin tässä on itsestään selvä. Eroittimet Täytyy käytät aina //rajoittimien varten regex? Ei. PHP tarjoaa mahdollisuutta käyttää delimiters valintasi.
Seuraavia ilmaisuja, kukin tuottaa ottelu: preg_match ("! Maailma!", "Hello World") preg_match ("{Maailman}", "Hello World") preg_match ("Maailman", "Hello World") //default erottimia varten ottelua voidaan muuttaa mielivaltaisesti erottimia. Ensimmäisessä esimerkissä, erottimet ovat !!. Toisessa ilmaisu rajoittimien ovat {}. Kolmannessa esimerkissä, rajoittimien ovat ''. Seuraava koodi havainnollistaa Kolmannessa tapauksessa: jos (preg_match ("Maailman", "Hello World")) echo "Hyväksytty". "Muu echo" ei vastaa ".
"?>