*   >> Lezen Onderwijs artikelen >> tech >> web development

Met behulp van reguliere expressies in Php

Met behulp van reguliere expressies in PHP PHP reguliere expressies - Deel VII Inleiding Wij hebben een aantal toepassingen van reguliere expressies in PHP gezien. We weten hoe om te controleren of een reguliere expressie wordt gevonden in een onderwerp string. We weten hoe de positie van de aangepaste reguliere expressie in het onderwerp reeks vinden. Merk op dat het onderwerp snaar een hele pagina van de tekst kan zijn. In dit deel van de serie, zullen we leren van twee belangrijke functies getiteld "Zoeken en vervangen" en "The Split Operation".

Voordat we vertrekken dit deel zullen we praten over de regex begrenzer. Laten we beginnen met een zeer klein gedeelte genoemd Variabelen in Regex. Variabele in Regex Voordat we kijken naar de twee functies, laat ons ervan bewust zijn dat de reguliere expressie patroon variabelen kan hebben. De volgende code werkt: $ var = "AM"; $ var = "AM"; if (preg_match ("/I $ var /", "Ik ben het.")) echo "Matched". "Else echo" Niet Matched> Hier hebben we de variabele $ var = "AM".

"?"; De reguliere expressie is /I $ var /die is /ik /"word" in het patroon wordt vervangen door $ var; en matching optreedt Zoeken en vervangen U kunt zoeken naar een wedstrijd in het onderwerp string en de sub-strings gematched vervangen. Beschouw het volgende onderwerp string: "Ik ben een man Je bent een man.." De sub-string "man" komt in dit onderwerp op twee plaatsen. U kunt elk optreden van de sub-string "man" vervangen om vrouw te hebben. De volgende code doet dit: $ finalStr = preg_replace ("/man /", "vrouw", ". Ik ben een man Je bent een man.

"); echo $ finalStr; ?> Je hebt de functie, preg_replace (). Het eerste argument van deze functie is de reguliere expressie. Het tweede argument is de sub-string naar de sub reeks geëvenaard door de reguliere expressie te vervangen. Het derde argument is het onderwerp. Deze functie geeft het onderwerp string waarin alle geëvenaard sub snaren zijn vervangen. Indien geen overeenkomst plaatsgevonden, wordt de oorspronkelijke tekenreeks geretourneerd. Als een fout heeft voorgedaan, wordt NULL geretourneerd. De tweede verklaring van de bovenstaande code echoot de geretourneerde string.

Dit is wat wordt weerspiegeld: Ik ben een vrouw. Jij bent een vrouw. Ja, kunt u de preg_replace () functie gebruiken om te zoeken naar sub strijkers door een reguliere expressie en hebben alle sub strings gevonden vervangen door een vervangende sub string. De vervanging substring is het tweede argument van de functie. Als er veel wedstrijden, is het mogelijk voor u om een ​​aantal van hen te vervangen, te beginnen vanaf de eerste. Voor dit, u een vierde optionele argument nodig. Denk aan het volgende onderwerp: "Ik ben een man Je bent een man Die persoon is een man...

" Er zijn drie gevallen van het woord, "man". Laten we alleen de eerste twee vervangen. Deze volgende code doet dit: $ finalStr = preg_replace ("/man /", "vrouw", ". Ik ben een man Je bent een man Die persoon is een man..", 2); echo $ finalStr; ?> Heeft een vierde argument is toegevoegd. We willen dat de eerste twee exemplaren van de sub-reeks, "de mens" te worden vervangen, zodat we 2 als vierde argument. Het vierde argument is het aantal gevallen van de wedstrijd, je wilt vervangen. De tweede verklaring in de code boven echoot de resulterende string, ik ben een vrouw. Jij bent een vrouw.

Die persoon is een man. Deze vierde argument is optioneel. Als je -1 daar het betekent dat je wilt dat alle exemplaren van de afgedekte sub-string worden vervangen; Dit is het standaard gedrag bij afwezigheid van -1. Het volgende voorbeeld illustreert het gebruik van -1. $ finalStr = preg_replace ("/man /", "vrouw", "Ik ben een man Je bent een man Die persoon is een man...", -1); echo $ finalStr; ?> De output van de code is: ik ben een vrouw. Jij bent een vrouw. Die persoon is een vrouw.

Tot nu toe hebben we de preg_match () functie, de preg_match_all () functie en nu preg_replace () functie gezien. Tellen van het aantal Vervanging Made Er is een vijfde optioneel argument voor de preg_replace () functie. Dit is een variabele. U kiest zelf welke naam je wilt voor de variabele. De volgende code illustreert dit: $ finalStr = preg_replace ("/man /", "vrouw", "Ik ben een man Je bent een man Die persoon is een man...", 2, $ count); echo $ finalStr. "echo $ tellen." ?> Kijk naar de argumenten van de functie zeer goed. Het eerste argument is de reguliere expressie.

De tweede is de vervangende tekenreeks. De derde is het onderwerp; het heeft drie gevallen van het woord, "man". De vierde geeft het aantal vervangende we willen; is 2. De vijfde is de variabele die het aantal vervangingen feitelijk houdt. De output van de code is, ik ben een vrouw. Jij bent een vrouw. Die persoon is een man. 2 Het vierde argument wilde twee vervangingen en twee vervangers werden gemaakt. De laatste verklaring in de code geeft het aantal vervangende eigenlijk maakte; toont de waarde van de variabele, die de vijfde argument.

Het is niet noodzakelijk voor u om deze variabele hebben verklaard elders, eerder. Het is mogelijk dat je niet zou weten het aantal wedstrijden in het onderwerp, en je zou willen alle mogelijke overeenkomsten te vervangen en het nummer weet van vervanging. In dit geval zal de vierde argument -1 en zou u de vijfde argument nodig. De volgende code illustreert dit: $ finalStr = preg_replace ("/man /", "vrouw", "Ik ben een man Je bent een man Die persoon is een man...", -1, $ Count); echo $ finalStr. "echo $ tellen.

" ?> Hier worden alle wedstrijden zouden worden vervangen en $ telling zou het aantal vervangende te houden, na de uitvoering van de functie. De uitvoer van de bovenstaande code is, ik ben een vrouw. Jij bent een vrouw. Die persoon is een vrouw. 3 Drie is het aantal vervangende gemaakt. De Split Operation Er is een functie voor. Een syntaxis voor de functie is: scala preg_split (string $ regex, string $ onderwerp) De split functie preg_split () splitst een string in een array van sub strings en geeft de array. Het maakt gebruik van een reguliere expressie als een separator.

Wees standaard de reguliere expressie is geen onderdeel van de geretourneerde array. Beschouw het volgende onderwerp string: $ subject = "een twee drie"; Als we de reguliere expressie patroon ruimte tussen woorden te identificeren, dan kunnen we deze string splitsen in een array samengesteld uit de woorden "een", "twee" en "drie". \\ Is het karakter klasse voor ruimte. \\ + Een ruimte één of meer keren passen. De regex bovenstaande woorden scheiden is \\\\ + \\ We nemen aan dat een ruimte kan worden gecreëerd door op de spatiebalk meermaals.

De volgende code illustreert het gebruik van de splitsing functie met de bovenstaande patroon. $ subject = "een twee drie"; $ arr = preg_split ("/\\ + /", $ onderwerp); echo $ arr [0]. "echo $ arr [1]." .? echo $ arr [2] "> In de onderhavige reeks woorden worden gescheiden door spaties De uitvoer van de bovenstaande code.

één twee drie Het gemorste functie woorden gesplitst onderwerp tekenreeks met de ruimte tussen de woorden, en zet elk woord als een element van de geretourneerde matrix Het is mogelijk om woorden in een string gescheiden door een komma en een spatie, zoals $ subject = "één, twee, drie"; De reguliere expressies om deze woorden te scheiden is:. /, \\ + /De volgende code illustreert dit:. $ subject = "één, twee, drie"; $ arr = preg_split ("/, \\ + /", $ onderwerp); echo $ arr [0] " echo $ arr [1]. "echo $ arr [2].

" ?> De uitvoer van de bovenstaande code is: een twee drie Een vereenvoudigde syntaxis van de preg_replace () is: $ StrWithRepl = preg_replace (string regex, string $ vervanging, string $ onderwerp); Uit de verklaring die ik heb eerder gezien, de syntax is hier vanzelfsprekend. De Delimiters Moet je altijd gebruik maken van de //scheidingstekens voor de reguliere expressie? Nee PHP geeft u de mogelijkheid van het gebruik van afbakeningen van uw keuze.

De volgende uitdrukkingen, elk produceert een wedstrijd: preg_match ("! World", "Hello World") preg_match ("{wereld}", "Hello World") preg_match ("'World'", "Hello World") het //default afbakeningen voor een wedstrijd kan worden gewijzigd in willekeurige scheidingstekens. In het eerste voorbeeld, de scheidingstekens zijn !!. In de tweede uitdrukking de begrenzers zijn {}. In het derde voorbeeld, de scheidingstekens zijn ''. De volgende code illustreert het derde geval: if (preg_match ("'World'", "Hello World")) echo "Matched". "Else echo" Niet Matched ".

"?>

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.