Embedding Modifiers Voit upottaa määritteet regex (ohjeessa). Aion käyttää tapauskohtaisesti vähemmän muokkaaja, i havainnollistaa tätä. Muista, tapaus-vähemmän muokkaaja tekee vastaavia tunteettomia. Poikkeuksena tästä on, kun muokkaaja on subpattern (katso alla). Modifier on upotettu sulkemalla se merkkiä, (?), Heti "?" merkki. Harkitse käytettävissä merkkijonon, "XYZ" ja regex, /(? I) xyz /Huomautus merkistöä, "(? I)", jossa on i muuntaja. Edellä regex sopisi kaikki edellä mainittua asiaa.
Seuraava lauseke tuottaa ottelu: "XYZ" = ~ /(? I) xyz /Oletetaan seuraava regex: /XY (? I) z /Tässä määrite on otettu juuri ennen viimeisen merkin, 'Z'. Vaikutus on sama kuin ennen. Se ei ole väliä missä laitat muuntaja. Koko regex vaikuttaa riippumaton jossa laitat muuntaja. Joten /(? I) xyz /, /XY (? I) z /ja /xyz /i tarkoittavat samaa asiaa. Ei-syömällä ryhmät ryhmä on teksti sulkeissa regex. Oletuksena tällainen teksti on kaapattu osaksi muuttuja tai luettelon vasemmalla puolella = ~ operaattori. Harkitse seuraava koodi: käytämme tiukkoja; minunarr = ("Tämä on yksi ja se on kaksi.
" = ~ /(one).*(two)/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; On lähtö edellä koodi: yksi, kaksi, lähtö muodostuu sanoista, "yksi" ja "kaksi". Nämä ovat elementtejä kaapataan ja tallennetaan jono,arr. Et ehkä halua vangita jokainen ryhmä. Jos et halua kaapata ryhmä, ennen sisällön ryhmä "?". Estää ryhmä "(yksi)" edellä jäisi kiinni, tarvitset "(?: Yksi)" ryhmän. Ryhmä on edelleen voimassa kuvion sen muiden etu, mutta se ei ole kiinni. Seuraava koodi kuvaa tätä: käytä tiukka; minunarr = ("Tämä on yksi ja se on kaksi." = ~ /(?:one).
*(two)/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; Lähtö koodi on: kaksi Me esti ensimmäisen ryhmän, "(yksi)" tulemasta vangiksi muuttaen sen "(?: Yksi)". Vuodesta lähtö, näemme, että "yksi" on saatavilla merkkijono ei ole kiinni, kuten odotimme. "Kaksi" on saatu kiinni, ja se on