"; if ($ availableString = ~ /o \\ I # a primeira parte dos nternet regex # I para Internet deve ser em maiúsculas /x) {print "Matched \\ n"; } Else {print "Not Matched \\ n"; } Com o modificador x, # começa um comentário. Se você não estiver usando o modificador x, note que o "(? #COMMENT)" Tag não podem ser aninhadas, Você não pode ter "(? #COMMENT (? # Comment))" em uma regex. Incorporação modificadores Você pode embutir modificadores na regex (dentro do padrão). Vou usar o modificador de caso-less, i para ilustrar isso. Lembre-se, o modificador de caso-less faz a correspondência insensível.
A excepção a isto é quando o modificador é, em um sub-padrão (ver abaixo). Um modificador é incorporado colocando-nos personagens, (?), Logo após o '?' placa. Considere a seqüência de caracteres disponíveis, "XYZ" e do regex, /(? I) xyz /Observe o conjunto de caracteres "(? I)" que tem o modificador i. A regex acima iria coincidir com todo o assunto em epígrafe. A expressão a seguir produz um jogo: "XYZ" = ~ /xyz /Considere o seguinte regex (i?): (I) /xy z /Aqui, o modificador foi colocado imediatamente antes do último caractere, 'z'. O efeito é o mesmo que antes.
Não importa onde você coloca o modificador. Toda a regex é afetada independente de onde você coloca o modificador. Então /(? I) xyz /, /xy (? I) z /e /xyz /i significam a mesma coisa. Grupos de não captura Um grupo é o texto entre parênteses no regex. Por padrão, qualquer texto é capturado em uma variável ou lista no lado esquerdo do operador = ~. Considere o seguinte código: use strict; meuarr = ("Este é um e que é dois." = ~ /(one).*(two)/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; A é a saída do código acima: um, dois, a saída consiste nas palavras, "um" e "dois".
Estes são elementos capturados e armazenados na matriz,arr. Você não pode querer capturar cada grupo. Se você não deseja capturar um grupo, preceder o cont