"; if ($ availableString = ~ /den \\ I # den første del af regex nternet # I til Internet skal være med store bogstaver /x) {print "Matches \\ n"; } Else {print "Ikke Matchet \\ n"; } Med X modifier, # begynder en kommentar. Hvis du ikke bruger x-modifier, bemærke, at "(? #Comment)" Tag ikke kan indlejres, Du kan ikke have "(? #Comment (? # Kommentar))" i en regex. Indlejring Modifikatorer Du kan integrere modifikatorer i regex (i mønsteret). Jeg vil bruge den retspraksis mindre modifier, jeg til at illustrere dette. Husk, den retspraksis, mindre modifier gør den matchende ufølsomt.
Undtagelsen til dette er, når modifier er i en undermønster (se nedenfor). En ændringstast er indlejret ved at omslutte den i karaktererne, (?), Lige efter '?' tegn. Overvej den tilgængelige streng, "XYZ", og regex, /(? I) xyz /Bemærk tegnsæt "(? I)", der har jeg modifier. Ovenstående regex ville matche alle de ovennævnte emne. Følgende udtryk producerer en match: "XYZ" = ~ /xyz /Overvej følgende regex (i?): (? I) /xy z /Her modifier er sat lige før det sidste tegn, "z '. Virkningen er den samme som før. Det er ligegyldigt, hvor du sætter modifier.
Hele regex påvirkes uafhængigt af hvor du sætter modifier. Så /(? I) xyz /, /xy (? I) z /og /xyz /jeg mener det samme. Ikke opfange Grupper En gruppe er tekst i parentes i regex. Som standard er en sådan tekst fanget i en variabel eller listen i venstre side af = ~ operatør. Betragt følgende kode: Brug streng; minarr = ("Dette er én, og det er to." = ~ /(one).*(two)/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; Det er produktionen af ovenstående kode: en to Udgangen består af ord, "en" og "to". Disse er elementer fanget og gemt i array,arr. Du må ikke ønsker at fange hver gruppe.
Hvis du ikke ønsker at fange en gruppe, forud for indholdet af gruppen med ":?". For at forhindre gruppen "(en)" ovenfor fra at blive taget til fange, du behøver "(:? En)" for gruppen. Gruppen er stadig gældende i mønster med sin anden fordel, men den er ikke fanget. Følgende kode illustrerer dette: Brug streng; minarr = ("Dette er én, og det er to." = ~ /(?:one).*(two)