*   >> läser Utbildning artiklar >> science >> programming

Fler Reguljära uttryck i Perl

l för att inkludera en kommentar i en regex i del VI. Använder taggen "(#Comment?)" Är bra när din regex och kommentarer är på en rad. Om du vill att din regex och det kommenterar att vara på mer än en rad, så ska du använda x modifierings och fly alla vita ytor, enligt följande: $ availableString = ~ /the \\ jag # den första delen av regex nternet # Jag för Internet måste vara i versaler /x Följande kod illustrerar detta: använd strikt; min $ availableString = "Använd Internet.

"; if ($ availableString = ~ /the \\ jag # den första delen av regex nternet # I för Internet måste vara i versaler /x) {print "Matchade \\ n"; } Else {print "inte motsvaras \\ n"; } Med x modifierings börjar # en kommentar. Om du inte använder x modifierings, notera att "(? #Comment)" Tagg kan inte kapslas, Du kan inte ha "(? #Comment (? # Kommentar))" i ett reguljärt uttryck. Bädda Modifiers Du kan bädda modifierings i regex (i mönstret). Jag kommer att använda fall mindre modifierings jag att illustrera detta. Kom ihåg att fallet mindre modifierings gör matchande okänslig.

Undantaget är när modifieraren är i ett delmönster (se nedan). Ett modifieringsmedel är inbäddad genom att innesluta den i tecken, (?), Strax efter "?" skylt. Tänk på tillgängliga strängen "XYZ" och regex, /(? I) xyz /noterar teckenuppsättningen "(? I)", som har i modifierings. Ovanstående regex skulle matcha alla ovanstående ämne. Följande uttryck producerar en match: "XYZ" = ~ /xyz /Tänk på följande regex (i?): (I) /xy z /Här modifierings har lagts strax före sista tecknet, "z". Effekten är densamma som tidigare. Det spelar ingen roll var du placerar modifierings.

Hela regex påverkas oberoende av var du placerar modifierings. Så /(? I) xyz /, /xy (? I) z /och /xyz /jag menar samma sak. Icke fångande Grupper En grupp är text inom parentes i regex. Som standard är en sådan text fångas i en variabel eller en lista på vänster sida av = ~ operatören. Tänk på följande kod: använd strikt; minarr = ("Det här är ett och det är två." = ~ /(one).*(two)/); print $ arr [0] "\\ n"; print $ arr [1], "\\ n"; Det är resultatet av ovanstående kod: en två Utgången består av ord, "ett" och "två". Dessa är faktorer som fångas och lagras i matrisen,arr.

Du kanske inte vill att fånga varje grupp. Om du inte vill att fånga en grupp före innehållet i gruppen med "?". För att förhindra att gruppen "(en)" över från att fångas, måste du "(:? En)" för gruppen. Gruppen är fortfarande giltiga i mönstret med sin andra fördelar, men det är i

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.