*   >> läser Utbildning artiklar >> tech >> web development

Använda reguljära uttryck i Php

Använda reguljära uttryck i PHP PHP Regular Expressions - Del VII Inledning Vi har sett några användningsområden för regex i PHP. Vi vet hur att verifiera om ett reguljärt uttryck hittas i en patient sträng. Vi vet hur man hittar ställning matchade regex i ämnet strängen. Notera att föreliggande sträng kan vara en hel sida text. I denna del av serien, ska vi lära oss två viktiga funktioner titeln "Sök och ersätt" och "Split Operation". Innan vi lämnar denna del ska vi tala om regex avgränsare. Låt oss börja med en mycket liten del som kallas variabler i Regex.

Variabel i Regex Innan vi tittar på de två funktionerna, låt oss vara medvetna om att regex mönster kan ha variabler. Följande kod fungerar det: $ var = "am"; $ var = "am"; if (preg_match ("/I $ var /", "Jag är en.")) echo "Matchade". "Annars echo" Inte Matchade> Här har vi variabeln $ var = "am" "."; Regex är /I $ var /som /jag /"am" i mönstret ersättas med $ var; och matchning sker Sök och ersätt Du kan söka efter en match i ämnet strängen och har understrängar matchade ut. Tänk dig följande föremål sträng: "Jag är en man Du är en man..

" Under sträng "man" förekommer i detta ämne på två ställen. Du kan ha alla förekomster av under strängen "man" ersättas till kvinnan. Följande kod gör så här: $ finalStr = preg_replace ("/man /", "kvinna", ". Jag är en man Du är en man."); echo $ finalStr; ?> Du har funktionen, preg_replace (). Det första argumentet för denna funktion är det reguljära uttrycket. Det andra argumentet är under strängen för att ersätta den under sträng matchas av regex. Det tredje argumentet är motivet. Funktionen returnerar ämnet sträng där alla matchade under strängarna har bytts ut.

Om ingen matchning har inträffat, är den ursprungliga strängen returneras. Om ett misstag har inträffat, är NULL returneras. Det andra meddelandet om ovanstående kod ekar den returnerade strängen. Detta är vad som ekade: Jag är en kvinna. Du är en kvinna. Så kan du använda preg_replace () för att söka efter understrängar med ett reguljärt uttryck och har alla understrängar som har hittats ersättas av någon ersättnings sub sträng. Ersättnings sub strängen är det andra argumentet för funktionen.

Om det finns många matcher, är det möjligt för dig att ersätta en del av dem, med början från den första. För detta behöver du en fjärde valfritt argument. Tänk på följande ämne: "Jag är en man Du är en man Den personen är en man..." Det finns tre förekomster av ordet "man". Låt oss bara de två första ersätts. Detta följande kod gör detta: $ finalStr = preg_replace ("/man /", "kvinna", ". Jag är en man Du är en man Den personen är en man..", 2); echo $ finalStr; ?> En fjärde argument har lagts till.

Vi vill att de två första förekomster av understrängen, "man" bytas ut, så vi satte två som fjärde argument. Det fjärde argumentet är antalet förekomster av matchen, vill du bytte. Den andra uttalande i koden ovan ekar den resulterande strängen som jag är en kvinna. Du är en kvinna. Den personen är en man. Denna fjärde argumentet är valfritt. Om du lägger -1 där betyder det att du vill att alla förekomster av den matchande sub sträng som ska ersättas, Detta är standardbeteendet i frånvaro av -1. Följande exempel illustrerar användningen av -1.

$ finalStr = preg_replace ("/man /", "kvinna", "Jag är en man Du är en man Den personen är en man...", -1); echo $ finalStr; ?> Utgången av koden är: Jag är en kvinna. Du är en kvinna. Den personen är en kvinna. Hittills har vi sett preg_match () funktion, preg_match_all funktion () och nu preg_replace funktionen (). Räkna antalet Replacement Made Det finns en femte valfritt argument för preg_replace funktionen (). Detta är en variabel. Du väljer vilket namn du vill ha för variabeln.

Följande kod illustrerar detta: $ finalStr = preg_replace ("/man /", "kvinna", "Jag är en man Du är en man Den personen är en man...", 2, $ count); echo $ finalStr. "echo $ count." ?> Titta på argument fungerar mycket väl. Det första argumentet är det reguljära uttrycket. Den andra är ersättningssträngen. Den tredje är föremål; Det har tre förekomster av ordet "man". Den fjärde ger antalet ersättnings vi vill; Det är 2. Den femte är den variabel som kommer att hålla antalet byten faktiskt gjorts. Utgången av koden är, jag är en kvinna. Du är en kvinna. Den personen är en man.

2 Det fjärde argumentet ville ha två byten och två ersättare gjordes. Den sista uttalandet i koden visar antalet ersättnings faktiskt gjort; det visar värdet på variabeln, som är den femte argumentet. Det är inte nödvändigt för dig att ha deklarerat denna variabel någon annanstans innan. Det är möjligt att du inte skulle veta hur många matcher i ämnet, och du skulle vilja ersätta alla möjliga matchningar och vet hur många ersättare. I detta fall den fjärde argumentet blir -1 och du skulle behöva det femte argumentet.

Följande kod illustrerar detta: $ finalStr = preg_replace ("/man /", "kvinna", "Jag är en man Du är en man Den personen är en man...", -1, $ Count); echo $ finalStr. "echo $ count." ?> Här alla matcher skulle ersättas och $ count skulle hålla antalet ersättnings, efter genomförande av funktionen. Utsignalen från ovanstående kod är, jag är en kvinna. Du är en kvinna. Den personen är en kvinna. 3 Tre är antalet byte görs. Split Operation Det finns en funktion för detta.

En syntax för funktionen är: array preg_split (sträng $ regex, string $ ämne) Uppdelningen-funktionen preg_split () delar upp en sträng i en rad under strängar och returnerar arrayen. Den använder ett reguljärt uttryck som en separator. Var standard det reguljära uttrycket är inte någon del av den returnerade arrayen. Tänk dig följande föremål sträng: $ Ämne = "ett två tre"; Om vi ​​vet regex mönster för att identifiera utrymmet mellan ord, så vi kan dela denna sträng i en matris som består av ord, "ett", "två" och "tre". \\ Är teckenklassen för rymden.

\\ + Kommer att matcha ett mellanslag, en eller flera gånger. Regex att separera ovanstående ord är \\\\ + \\ Vi antar att ett utrymme kan skapas genom att trycka på mellanslagstangenten mer än en gång. Följande kod illustrerar användningen av den delade funktion med detta mönster. $ Ämne = "ett två tre"; $ arr = preg_split ("/\\ + /", $ ämne); echo $ arr [0]. "echo $ arr [1]." .? echo $ arr [2] "> I ämnet strängen orden separeras av mellanslag Utsignalen från ovanstående kod är:.

one two three Utspilld funktionen har delat ord i ämnet sträng med mellanrum mellan orden, och sätta varje ord som en del av den returnerade arrayen Det är möjligt att ha ord i en sträng separeras med ett kommatecken och ett mellanslag, som $ Ämne = "ett, två, tre", The regex att separera dessa ord är:. /\\ + /Följande kod illustrerar detta:. $ Ämne = "ett, två, tre"; $ arr = preg_split ("/\\ + /", $ ämne); echo $ arr [0] " echo $ arr [1]. "echo $ arr [2].

" ?> Utgången av ovanstående kod är: en två tre En förenklad syntax av preg_replace () är: $ StrWithRepl = preg_replace (sträng regex, string $ ersättning, string $ ämne); Från förklaringen jag har gett tidigare, är syntaxen här självförklarande. De Avgränsare Måste du alltid använda //avgränsare för regex? Nej PHP ger dig möjligheten att använda avgränsare som du väljer.

Följande uttryck, varje ger en match: preg_match ("! World", "Hello World") preg_match ("{World Travel}", "Hello World") preg_match ("" World '"," Hello World ") i //standard avgränsare för en match kan ändras till godtyckliga avgränsare. I det första exemplet, avgränsarna är !!. I den andra expressions avgränsarna är {}. I det tredje exemplet, avgränsarna är ''. Följande kod visar det tredje fallet: om (preg_match ("" World '"," Hello World ")) echo" Matchade ". "Annars echo" Inte Matchade ".

"?>

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.