ComputersProgrammering

Regelmatige expressies (PHP). PHP: reguliere expressies, voorbeelden

Hoe groot en divers wereld van informatie, net zo snel, het uitzet en ontwikkelt. Elke beslissing - slechts een punt in het totale proces van de beweging. Kennis en ervaring maken het mogelijk om het proces van het bereiken van het doel te begrijpen, maar nooit - niet het resultaat van haar prestaties. Het is twijfelachtig dat we kunnen spreken in de nabije toekomst op het resultaat, maar het is belangrijk dat het proces van het streven naar het is een belangrijke en objectief noodzakelijk proces.

"Verlangen en / of een hoop geld" niet een algoritme in staat is dat te creëren, en natuurlijk "vrij" man doet, vooral wanneer hij denkt er niet over wat hij aan het doen was. In elke situatie de informatie probleem ten minste een blinde vlek, maar voor hem, meestal direct, anderen schoon vlekken zichtbaar zijn, en niet per se dat ze allemaal witte bloemen.

Internet-technologie heeft de toegang tot informatie vereenvoudigd, maar de vraag is - hoe op te zetten die de gewenste - niet vereenvoudigd en nieuwe "volume" verworven van het werk. En hoewel PHP reguliere expressie kloof is duidelijk niet uitgeput, ze zijn een belangrijke stap voorwaarts.

Eenvoudige functies + algoritme = pattern

Het aanbieden van reguliere expressies, PHP algoritme vermindert de inhoud, maar de gebruikelijke zoekfuncties / vervanging en verwerkingsalgoritmes vonden hun belang niet verloren. Nieuwe ideeën niet voorspellen de informatie revolutie. De meeste die kunnen worden verwacht - compact code en het verhogen van de ontwikkelaar de mogelijkheid om een zoekopdracht correct te formuleren.

U moet weten en toe te passen op PHP reguliere expressies. Voorbeelden overtuigend en effectief. Maar het moet het rapport te geven dat met de komst van een nieuwe zoekmachine, het zwaartepunt verschoven naar het patroon - een soort mechanisme, hoewel het in feite vervangen door een reeks eenvoudige zoekfuncties, voorwaarden, loops, en andere operatoren.

hebben:

  • kwaliteit en moderne tool - het is goed;
  • zien en gebruiken de ervaring van collega's aan de hand is;
  • een combinatie van realiteit en virtuele idee - een garantie voor succes.

Het bereiken van kennis van hoe het noodzakelijk om het probleem te begrijpen, om het op te lossen was, is het vaak belangrijker dan de specifieke resultaat.

Reguliere expressies in PHP worden vertegenwoordigd door een aantal functies in de taal syntax en veel nuttige voorbeelden op het internet. Vanwege syntax specifieke toepassing opties zijn alleen beperkt door de fantasie van de ontwikkelaar, maar sleuet in gedachten te houden dat niet alle van de sjablonen zal werken. Met behulp van PHP validatie van reguliere expressies is essentieel.

Eenvoudig zoeken karakter (string)

Symbol - dit is niet altijd een enkele byte, en is vaak een symbool, zoals een chip, heeft een precieze betekenis in toevoeging. Codering specificeert de zichtbare tekens in de code anders. Het symbool kan verschillende opties hebben: "$" = "USD" = "USD", ... - is de exacte betekenis van dat er ergens iets, maar niet per se in de buurt, als gevolg van de munt. Echter, de exacte betekenis liggen in variabele PHP, die altijd begint met de letter "$", maar kan niet beginnen met "USD" en "USD".

Het symbool van het programma kan een functie naam (string) in het kader van zijn: herkennen en te vervullen - het is van het dynamische object-georiënteerd programmeren, wanneer de structuur, de functies, PHP reguliere expressies direct worden gebruikt voor het nemen van beslissingen. Vond het symbool "bochten", dat wil zeggen door bepaalt zelf wat te doen in de plaats waar het is gevonden, en de manier waarop het is, "hij oordeelt" nodig.

Zoeken naar een teken / lijn - niet zo'n eenvoudige oefening, en hoe meer informatie, hoe duidelijker hoe beter. Het is niet altijd nodig om de tien beste van de voedselprijzen te vinden, kiest u heerlijke recepten verjaardagstaart, of de aannemer voor het verlaagde plafond vast te stellen.

Vaak is het noodzakelijk om het optimaliseren van de eenvoudige algoritmes zijn niet eenvoudig rekenkundige informatie of in moeilijke omstandigheden, wanneer het gewenste teken te kiezen uit een database, en de lijn waarin het noodzakelijk is te vinden - een honderd sites. De prijs is gelijk aan een personage uit de tijd dat het monster database, en de prijs van waar te kijken selecteren - zoektijd beruchte honderden sites.

Lone symbool - het is niet een zin, en niet een paar zinnen, kon hij overal zijn en zo klein als gewenst. Hoe om te bepalen wat er gevonden is de gewenste?

Voorbeeld: zoek naar de prijzen

Zoek gewoon de tekst "$" symbool - een beetje. Controleer of het wordt geconfronteerd met een aantal, is het niet altijd genoeg. Als u een punt of een nummer voordat het symbool "$" is een garantie dat de prijzen waartegen de monetaire symbolen zijn voorsprong niet in aanmerking worden genomen. Er zijn ook weggelaten de prijs, die in het algemeen niet is opgegeven valuta, maar op de pagina is op expliciete instructies.

In het algemeen is de oplossing van het probleem op de gebruikelijke wijze opgeblazen onherkenbaar algoritme en tijdrovend. Ondertussen, met behulp van een reguliere expressie, het aantal PHP worden geen problemen.

$ CContents = preg_match_all ( "/ [0-9] + ([\ $] | USD | y \ £ \ | ue) {1} / i.";

"Kijk e-mail - 2usd,
";
"Find e-mail - 2u.e;
.";
"Het werk e-mail - UE2,
";
"Check e-mail - $ 13", $ aresult);
. '; '. imploderen ( '', $ aresult [0]). '
'.

Zal antwoorden: "2; 2usd, 2u.e.", maar vond niets in de lijn niet vinden: "check e-mail - $ 13."

Zorgen voor de aanwezigheid van het patroon voor of achter het teken kunt u snel succes behalen in de meeste gevallen.

$ CContents = preg_match_all ( "/ ([0-9] + ([\ $] | USD | y \ £ \ |. Ue) {1}) | (([$] | USD | y \ £ \. | ue) {1} [0-9] +) / i ";
"Kijk e-mail - 2usd,
";
"Find e-mail - 2u.e;
.";
"Het werk e-mail - UE2,
";
"Check e-mail - $ 13", $ aresult);
. '; '. imploderen ( '', $ aresult [0]). '
'.

Resultaat: "4; 2usd, 2u.e., UE2, $ 13."

Over onbedoelde logica

Reguliere expressies PHP aanbiedingen, evenals andere instrumenten, maar het is niet nodig om ze toe te passen op basis van de regels of gebruik maken van andere functies die kleine syntax manier.

Mogelijk voor het begin van de zoektocht verplicht zich te wenden tot de array, en de plaats waar we zoeken, opgesplitst in componenten volgens de stand van criteria. Gewoon een paar ontploffen () en imploderen () vaak vereenvoudigt en versnelt de beslissing.

Bijvoorbeeld, als gevolg van de voorbereidende werk vormde een array van strings (data) in het district van hoeveel aardappelen verzameld elk dorp: Unknown ImyaDerevnya en het volume verzameld, en als het land rijdt meerdere bedrijven in een array van strings is ImyaDerevnya.ImyaPredpriyatie en de waarde door middel van "; " en ga zo maar door alle ondernemingen. Bereken het totaal in dit geval verzamelde niet mogelijk bedrag, maar als je impode doen ( "", $ aresult), zal een lange lijn, waarin het paar zijn - ImyaDerevnya / ImyaDerevnya.ImyaPredpriyatie - een verzameling van grootte - via zal worden overgedragen aan de ";". Doe een omgekeerde op de resulterende, exploderen ( "", $ aresult) - een array van allen, die verzameld en hoe deze worden verzameld, en vervolgens door het verwijderen van de lijnen uit alle niet-numerieke tekens, we hebben alleen getallen, waarvan de som is het totale volume verzameld.

In dit voorbeeld, de reguliere expressie in PHP toestaan niet te veel uit, ze zijn gemakkelijk en betaalbaar extract het gewenste numerieke waarden. Snel en efficiënt, het maakt niet uit hoe lang het kan zijn de namen van de dorpen en bedrijven. Deze oplossing is niet ideaal, maar het laat zien dat niet altijd aan de regels zou moeten zijn. Vaak is het mogelijk om de gewenste op een ongebruikelijke manier te bereiken.

Geabstraheerd van de technische kant, de codering

De syntaxis van het algoritme zegt niet hoe het eruit ziet in de werkelijkheid. Echter, het verstrekken van dezelfde codering van de pagina, en rijen script (die wordt gezocht in waarmee de beelden) kan een duik nemen in het probleem is de technische aspecten.

Men moet niet alleen weten wat te zoeken, maar waar het te doen, wanneer, hoeveel, wat te veranderen en hoe. Formeel PHP reguliere expressies uitgevoerd als een complete full-featured mechanisme van zijn eigen, maar om vele redenen, de realisatie van zijn collega's in vele talen anders. Als algemene regel geldt, voordat u een bepaald patroon in een bepaald instrument omgeving voor een specifieke taak te verplaatsen, is het noodzakelijk om uit te voeren van hoge kwaliteit aanpassing, te controleren op alle mogelijke opties voor de brongegevens.

Zelfs als je je eigen ervaring met het ontwikkelen in PHP gebruiken, reguliere expressies, voorbeelden, templates en design vereist een zorgvuldige controle. Dynamisch wijzigen van de taal functionaliteit, syntaxis en runtime.

De structuur en inhoud van een sjabloon

Wat was eerder geschreven in de vorm van een combinatie van zoekfuncties, conditionals, vervangingswerkzaamheden, invoegen, verwijderen, is een reeks tekens volgens bepaalde regels - reguliere expressie patroon. In feite is een aanzienlijk bedrag gecodeerd op een bepaalde manier en uitgevoerd door specifieke regels.

Net zoals het onmogelijk is een debugging taal operator te maken, kun je niet debuggen een reguliere expressie patroon, kan dit proces alleen maar na te bootsen. Als algemene regel geldt versie aangenomen: werken - werkt niet. De syntax is zeer eenvoudig, hoewel zijn perceptie, vooral in het begin, is erg moeilijk.

Een voorbeeld van een eenvoudige uitdrukking

In een eenvoudige uitvoering, de sjabloon overeenkomt met de string:

$ CContents = preg_match ( "/ asdf / i", "asdf", $ aresult). '; '. imploderen ( '', $ aresult).

"; Asdf 1", omdat de functie de werking voltooit het eerste bijpassende matrijs met het resultaat zal zijn. Het resultaat zal hetzelfde zijn, als we kijken naar de lijn "aaaasdf" in lijn "zzzasdfvvv". Als u de eerste en / of laatste karakter te geven, dan zou het resultaat duidelijk zijn:

$ CContents = preg_match ( "/ ^ asdf / i", "asdf", $ aresult). '; '. imploderen ( '', $ aresult). '
';
$ CContents. = Preg_match ( "/ asdf $ /", "asdf", $ aresult). '; '. imploderen ( '', $ aresult). '
'.

Het resultaat is: 1; asdf1; asdf.

De symbolen "*" en "$" geeft aan waar te beginnen en het einde patroon. Resultaat preg_match functie - het aantal overeenkomsten, het kan 0, 1 of false wanneer een fout gedetecteerd. De derde optie - een array - geplaatste alleen gevonden element. In het geval dat preg_match_all functie () Zoek blijft de eindlijn.

$ CContents = preg_match ( "/ asdf / i", "asdf123asdf456asdf789", $ aresult). '; '. imploderen ( '', $ aresult). '
';
$ CContents. = Preg_match_all ( "/ asdf / i", "asdf123asdf456asdf789", $ aresult). '; '. imploderen ( '', $ aresult [0]). '
'.

resultaat:

1; asdf
3; asdf, asdf, asdf.

Als u geen speciale instructies te gebruiken, elk personage definieert zichzelf en zijn plaats, ongeacht de lijn codering en template codering. De programmeur moet ervoor zorgen dat de codering van deze elementen correct waren ten opzichte van elkaar en codering pagina.

PHP-functies voor het werken met reguliere expressies

Reguliere expressies voor PHP vertegenwoordigen een tekenreeks opgenomen op een bepaalde manier. Meestal, naar analogie met andere programmeertalen, die zijn geschreven in de symbolen "/" ... "/" en geplaatst tussen aanhalingstekens, die u kunt gebruiken enkel of dubbel, afhankelijk van het algoritme.

De hoofdfunctie php preg match reguliere expressies gebruikt zowel patroongelijke en stopt deze op de eerste locatie, een variant daarvan met een achtervoegsel _all vindt alle wedstrijden, en voert de matrix daarvan. Functie preg vervangen vervangt elke wedstrijd een sjabloon, kan het werken met arrays, waardoor zoeken en uit te voeren vervanging van een verscheidenheid aan opties.

Interessante opties voor het werken met reguliere expressies kunnen worden ontwikkeld met behulp preg_replace_callback functie die geen vervangende tekst neemt, en de naam van de functie, die een dergelijke vervanging zal uitvoeren. In aanvulling op de praktische waarde die u kunt implementeren mechanismen controleren patroon, dat de ontwikkeling en debuggen van de laatste een belangrijke rol speelt.

Omvang van de reguliere expressies

Aangezien hypertext talen worden geformaliseerd aan een grotere mate ze het uitgangsmateriaal. Ontwikkelde een groot aantal templates en ontwerpen die het mogelijk maken om grote hoeveelheden data efficiënt te verwerken. Een aanzienlijk deel van dit werk wordt uitgevoerd mechanismen ingebouwd in diverse content management systemen (CMS).

Niet verrassend, veel CMS worden de facto standaarden voor het bouwen van sites, en wordt begeleid door de (geactualiseerde) software bedrijven, hebben ze niet maken het noodzakelijk voor het uitvoeren van de ontwikkeling van patronen op zijn eigen. Echter, buiten dergelijke systemen hebben ervaring met reguliere expressies is zeer nuttig.

Reguliere expressies en de echte informatie

Een belangrijk toepassingsgebied van reguliere expressies in PHP bibliotheken vormde de komst PHPOffice. Werken met documenten, spreadsheets, en heeft altijd belangrijk en OOXML standaard is het niet alleen mogelijk om de werkelijke documenten te ontmantelen, maar ook om hun programma vorm te geven.

Dankzij de ontwikkeling van hypertext en PHP talen in het bijzonder, is er een reële kans om de "productie" van documenten "standaardformulier" automatiseren, bijvoorbeeld facturen voor de betaling, rapporten, business plannen en andere informatie objecten, de structuur en de inhoud zijn eigenlijk ontvankelijk voor formalisering en automatisering.

In verband met de toepassing om de taal OOXML ontwikkelingsproces van reguliere expressies te beschrijven is heel anders dan de traditionele werken met opmaaktalen HTML en CSS in de eerste plaats. De eigenlijke document, met uitzondering van markering en in aanvulling op de werkelijke inhoud heeft veel details. Bijvoorbeeld, een document dat automatisch is gemaakt door het programma, zal een sterke en nauwkeurige inhoud. Document bewerken of door de persoon die behandeld wordt, zal een inhoud hebben, werd geschilderd over een aantal labels. Het werken met het document leidt tot het feit dat de semantiek van het één zijn, maar geschilderd in verschillende hoeveelheden op verschillende ontwerpen.

Natuurlijke informatie en situatie

Een persoon altijd geïnteresseerd in de oplossing van het probleem, die informatie heeft opgevoerd en, als gevolg daarvan, zal dezelfde informatie worden verstrekt. De presentatie van de verklaring van het probleem in de vorm van een document, een persoon krijgt een bepaalde semantiek, die in de specificatie van deskundigen (amendement, ter verduidelijking, verwijderen, bewerken) leidt niet alleen tot meerdere versies van een document, maar ook op de versies met verschillende inhoud.

Met name de door de woorden omschreven taak "Solve vierkante uranenie" na het monteren ziet er als volgt: "Om een kwadratische vergelijking op te lossen" Als het de eerste is de eerste fout is gecorrigeerd, en vervolgens de tweede, dan is de natuurlijke informatie in OOXML stijl eruit zou kunnen zien: "[opgelost] [] [square] [e] [] [cheers] [b] [nenie]", maar dit betekent niet garanderen dat dit de taak zal verschijnen in de labels OOXML (tussen haakjes emuleren haakjes-tags).

Samen te stellen van de informatie kan gemakkelijk worden na elke taak het bewerkingsproces, maar elke keer dat deze procedure zal worden uitgevoerd door verschillende algoritmes. Reguliere expressies, als een soort instrument van formalisering van informatie problemen zijn geworden, in feite, wandelroutes vanaf de formele structuren van hypertext om de natuurlijke informatie.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 birmiss.com. Theme powered by WordPress.