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

Regex Groeperingen in Perl

sub-strings in de beschikbare reeks, bij matching heeft plaatsgevonden. Perl heeft vele interne variabelen, waarvan 9 $ 1, $ 2, $ 3, $ 4, $ 5, $ 6 $ 7 en $ 9. Laten we eens kijken naar een voorbeeld voordat we verder. Beschouw de volgende code: use strict; if (". Dit is een en dat is twee" = ~ /(one).*(two)/) {print "Matched \\ n"; } Else {print "Niet Matched \\ n"; } Print "\\ $ 1 is:", $ 1, "\\ n"; print "\\ $ 2 is:", $ 2, "\\ n"; De beschikbare reeks is: "Dit is een en dat is twee." Laten we eens kijken naar het patroon. Het patroon is /(one).

*(two)/; het zal passende sub-tekenreeks in de beschikbare string die begint met "één" en eindigt met "twee". Vergeet niet dat de stip, gevolgd door het sterretje staat voor elke reeks tekens. Merk op dat er twee groepen in het patroon. De groepen zijn (één) en (twee). In de beschikbare reeks, heb je de sub-string "een" dan na enige afstand, heb je de sub-string "twee". De groep (een) overeenkomt met de sub tekenreeks "een" in de beschikbare string. De groep "twee" komt overeen met sub string "twee", in de beschikbare string.

Hierdoor matching, sub tekenreeks "een" in de beschikbare reeks is toegewezen aan de interne variabele, $ 1; de sub tekenreeks, "twee" in het beschikbare reeks is toegewezen aan de interne variabele, $ 2. In de code, de laatste twee verklaringen af ​​te drukken uit de waarden van deze twee variabelen. Als je nog nooit had de groepen (tussen haakjes), zou matching nog steeds plaatsvinden, maar niets zou toewijzen aan de interne variabelen ($ 1 en $ 2). Met andere woorden, zou er niets worden vastgelegd.

De uitvoer van de code is: $ 1 is: een $ 2 is: twee U kunt maximaal 9 groepen (paren haakjes) hebben het patroon. Als er ten minste 9 sub strings in de beschikbare tekenreeks die overeenkomt met de 9 groepen in het patroon, dan 9 sub strings in de beschikbare tekenreeks worden op $ 1, $ 2 ... $ 9 respectievelijk toegekend. Dat is de eerste die gekoppeld zou gaan naar $ 1; de tweede tot $ 2, de derde op $ 3 enzovoort. Dit is hoe je herinneren of capture sub strings in de beschikbare reeks na matching.

Opmerking: als er geen groep, dan zou er niets te onthouden (geen opdracht zal plaatsvinden) zijn; geen capture. U hoeft niet te hebben tot 9 groepen in het patroon; U kunt een willekeurig aantal minder. Hoe zit het met geneste groepen de volgende code: use strict; if ("boekhouders, boekhouder en boek samen gaan." = ~ /boek (keeper (s |) |) /) {print "Matched \\ n"; } Else {print "Niet Matched \\ n"

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