*   >> Lezen Onderwijs artikelen >> science >> programming

Het bouwen van een reguliere expressie in Perl

# 44CC88" = ~ /^ # ([\\ da-FA-F] {3} $ | [\\ da-FA-F] {6} $) /); afdruk $ matchedString; De output is: 44CC88 Voorbeeld 2 Gebruikersnaam Controleer opgeven de Task in Detail Stel dat we een site waar gebruikers inloggen. We kunnen de gebruiker dat zijn naam in kleine letters of hoofdletters en /of cijfers 0-9 en /of de underscore moet bevatten vertellen, _. Wij dringen erop aan dat de naam niet moet minder dan 3 letters of meer die 18 tekens. In dit voorbeeld hebben we de specificatie informatie opgelegd.

Breaking Down het probleem in kleinere delen Naam is opgebouwd uit * letters van het alfabet in kleine of hoofdletters tussen de 3 tot 18 letters, inclusief, en /of * cijfers 0-9 tussen de 3 tot 18 cijfers, inclusief, en /of * de underscore tussen de 3 tot 18 cijfers, inclusief. Dit betekent dat u kunt tot 18 underscores voor een naam. Laten we waarmee eenvoud. * We moeten de beschikbare reeks beperken tot 3 of 6 karakters.

Vertalen in regexes De reguliere expressie voor het eerste deel is: /^ [a-zA-Z] {3,18} $ /De reguliere expressie voor het tweede deel is: /^ [0-9] {3,18} $ /De regex voor het derde deel is: /^ [_] {3,18} $ /De combinatie van de reguliere expressies in het gedeelte af te breken, worden de drie bovengenoemde deel gecombineerd met de zin, "en /of" Er is geen directe manier van doen dit, dus we moeten het afleiden. Dit is de gecombineerde regex: /^ [a-zA-Z0-9 _] {3,18} $ /optimaliseren van de gecombineerde Regex Dit betekent dat het verkorten van de gecombineerde regex.

Merk op dat de klasse [a-zA-Z0-9_] wordt afgekort tot \\ w. De geoptimaliseerde regex is: /^ [\\ w] {3,18} $ /Backtracking We hebben gezien hoe alternatieven met de afwisseling metateken overeenkomen, |. Bij het matchen van alternatieven, Perl maakt gebruik van een proces dat bekend staat als backtracking. Ik zal dit illustreren met een voorbeeld. Denk aan de volgende uitdrukking: "12345" = ~ /(124 | 123) (46 | 4 | 45) /I zal backtracking uitleggen met het uitleggen van de werking van de bovenstaande formule. De volgende stappen wordt uitgelegd hoe PHP lost de bovenstaande formule. A.

Het begint met het eerste getal van de beschikbare string '1'. B. Het probeert het eerste alternatief in de eerste groep '124'. C. Zij ziet het matchen van '1', gevolgd door '2'. Dat is oke. D. Het merkt dat '4' in de reguliere expressie niet in de beschikbare reeks passen '3' - dat is een doodlopende weg. Dus het krabbelt twee karakters in de beschikbare string en pakt de tweede alternatief i

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