*   >> Læs Uddannelse artikler >> tech >> web development

Brug Regulære udtryk i Php

Brug af Regular Expressions i PHP PHP Regular Expressions - del VII Indledning Vi har set nogle anvendelser af regex i PHP. Vi ved, hvordan at kontrollere, om en regex er fundet i et emne streng. Vi ved, hvordan man finder position matchede regex i emnet streng. Bemærk, at emnet streng kan være en hel side med tekst. I denne del af serien, skal vi lære to vigtige funktioner titlen "Søg og Erstat" og "The Split Operation". Inden vi forlader denne del skal vi tale om den regex skilletegn. Lad os starte med en meget lille del kaldes variabler i Regex.

Variabel i Regex Før vi ser på de to funktioner, lad os være opmærksomme på, at det regex mønster kan have variabler. Følgende kode virker: $ var = "am"; $ var = "am"; if (preg_match ("/I $ var /", "jeg er den ene.")) echo "Matchet". "Ellers ekko" Ikke Matchet> Her har vi variablen, $ var = "am" ".?"; Den regex er /I $ var /som er /jeg /"AM" i mønsteret erstattes af $ var; og matching opstår Søg og Erstat Du kan søge efter en kamp i emnet strengen og har sub strenge matchede udskiftet. Overvej følgende emnet streng: "Jeg er en mand Du er en mand.".

Sub string "mand" optræder i dette emne i to steder. Du kan have hver forekomst af sub strengen "mand" erstattet til kvinde. Følgende kode gør dette: $ finalStr = preg_replace ("/mand /", "kvinde", ". Jeg er en mand Du er en mand.") echo $ finalStr; ?> Du har den funktion, preg_replace (). Det første argument for denne funktion er regex. Det andet argument er sub streng, for at erstatte den sub strengen modsvares af regex. Det tredje argument er genstand. Denne funktion returnerer emnet streng hvor alle de matchede sub strengene er blevet udskiftet.

Hvis nogen match skete, er den oprindelige returnerede streng. Hvis en fejl opstod, er NULL returneres. Den anden meddelelse af ovenstående kode ekkoer den returnerede streng. Dette er, hvad er gentaget: Jeg er en kvinde. Du er en kvinde. Så kan du bruge preg_replace () funktionen til at søge efter sub strygere af en regex og har alle de sub strengene fundet erstattet af nogle udskiftning sub streng. Erstatningsstrengen sub er det andet argument af funktionen. Hvis der er mange kampe, er det muligt at erstatte nogle af dem, der begynder fra den første.

For dette, du har brug for en fjerde valgfrit argument. Overvej følgende emne: "Jeg er en mand Du er en mand Denne person er en mand..." Der er tre forekomster af ordet "mand". Lad os har kun de to første udskiftes. Denne følgende kode gør dette: $ finalStr = preg_replace ("/mand /", "kvinde", ". Jeg er en mand Du er en mand Denne person er en mand..", 2); echo $ finalStr; ?> Et fjerde argument er blevet tilføjet. Vi ønsker de to første forekomster af sub streng, "mennesket" skal udskiftes, så vi sætte 2 som det fjerde argument.

Den fjerde argument er antallet af forekomster af kampen, ønsker du udskiftet. Den anden sætning i koden ovenfor ekkoer den resulterende streng som, jeg er en kvinde. Du er en kvinde. Denne person er en mand. Denne fjerde argument er valgfrit. Hvis du sætter -1 der det betyder, at du ønsker, at alle forekomster af matchede sub strengen, der skal udskiftes; dette er standard opførsel i fravær af -1. Det følgende eksempel illustrerer anvendelsen af ​​-1. $ finalStr = preg_replace ("/mand /", "kvinde", "Jeg er en mand Du er en mand Denne person er en mand...

", -1); echo $ finalStr; ?> Outputtet af koden er: Jeg er en kvinde. Du er en kvinde. Denne person er en kvinde. Hidtil har vi set preg_match () funktion, preg_match_all () funktion og nu preg_replace () funktion. Tælle antallet af udskiftning Made Der er en femte valgfrit argument for preg_replace () funktion. Dette er en variabel. Du vælger hvad navn, du ønsker for variablen. Følgende kode illustrerer dette: $ finalStr = preg_replace ("/mand /", "kvinde", "Jeg er en mand Du er en mand Denne person er en mand...", 2, $ count); echo $ finalStr. "echo $ tæller.

" ?> Kig på argumenter funktionen meget godt. Det første argument er regex. Den anden er den streng erstatning. Den tredje er emnet; det har tre forekomster af ordet "mand". Den fjerde angiver antallet af udskiftningen vi ønsker; det er 2. Den femte er den variabel, der vil holde antallet af udskiftninger faktisk lavet. Udgangen af ​​koden er, jeg er en kvinde. Du er en kvinde. Denne person er en mand. 2 Det fjerde argument ønskede to udskiftninger og to udskiftninger blev foretaget.

Den sidste sætning i koden viser antallet af udskiftningen faktisk gjort; Det viser værdien af ​​den variable, som er den femte argument. Det er ikke nødvendigt for dig at have erklæret denne variabel andre steder før. Det er muligt, at du ikke ville vide det antal kampe i emnet, og du ønsker at erstatte alle mulige kampe og kender antallet af erstatning. I dette tilfælde det fjerde argument vil være -1 og du vil være nødvendigt femte argument. Følgende kode illustrerer dette: $ finalStr = preg_replace ("/mand /", "kvinde", "Jeg er en mand Du er en mand Denne person er en mand...

", -1, $ Count); echo $ finalStr. "echo $ tæller." ?> Her alle de kampe, ville blive erstattet og $ count ville holde antallet af erstatning, efter udførelse af funktionen. Udgangen af ​​ovenstående kode er, jeg er en kvinde. Du er en kvinde. Denne person er en kvinde. 3 Tre er antallet af udskiftning foretaget. Split Operation Der er en funktion til dette. En syntaks for funktionen er: vifte preg_split (string $ regex, snor $ emne) Split-funktionen preg_split () deler en streng i et array af sub strenge og returnerer array. Den bruger en regex som separator.

Vær standard regex er ikke nogen del af den returnerede array. Overvej følgende emne streng: $ emne = "en to tre"; Hvis vi kender regex mønster til at identificere mellemrum mellem ord, så kan vi opdele denne streng til et array, der består af ordene, "en", "to" og "tre". \\ Er det tegn klasse for rummet. \\ + Vil matche et mellemrum, en eller flere gange. Regex til at adskille de ovennævnte ord er \\\\ + \\ Vi antager, at et rum kan skabes ved at trykke på mellemrumstasten mere end én gang. Følgende kode illustrerer anvendelsen af ​​split-funktionen med ovennævnte mønster.

$ emne = "en to tre"; $ arr = preg_split ("/\\ + /", $ emne); echo $ arr [0]. "echo $ arr [1]." .? echo $ arr [2] "> I motivet strengen ordene er adskilt af mellemrum Udgangen af ​​ovenstående kode er:. en to tre Den spildt Funktionen har delt ordene i emnet strengen ved hjælp af mellemrum mellem ordene, og sætte hvert ord som et element i den returnerede matrix Det er muligt at have ord i en streng adskilt af et komma og et mellemrum, ligesom $ emne = "en, to, tre" Den regex til at adskille disse ord er:. /, \\ + /Følgende kode illustrerer dette:.

$ emne = "en, to, tre"; $ arr = preg_split ("/\\ + /", $ emne); echo $ arr [0] " echo $ arr [1]. "echo $ arr [2]." ?> Udgangen af ​​ovenstående kode er: en to tre En forenklet syntaks af preg_replace () er: $ StrWithRepl = preg_replace (string regex, snor $ udskiftning, snor $ emne); Fra forklaring, jeg har givet før, syntaksen her er selvforklarende. De Afgrænsere Skal du altid bruge //skilletegn for regex? Nej PHP giver dig muligheden for at anvende skilletegn efter eget valg.

Følgende udtryk, hver producerer en match: preg_match ("!! World", "Hello World") preg_match ("{Verden}", "Hello World") preg_match ("Verdens", "Hello World") Den //standard afgrænsere for en kamp kan ændres til vilkårlige skilletegn. I det første eksempel, de adskillere er !!. I den anden udtryk de afgrænsere er {}. I det tredje eksempel er adskillere ''. Følgende kode illustrerer det tredje tilfælde: hvis (preg_match ("Verdens", "Hello World")) echo "Matchet". "Ellers ekko" Ikke Matchet ".

"?>

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.