*   >> Leitura Educação Artigos >> science >> programação

Mais Expressões Regulares em Perl

eúdo do grupo com ":". Para evitar que o grupo "(um)" acima de ser capturado, você precisa "(?: Um)" para o grupo. O grupo continua a ser válida no padrão com a sua outra vantagem, mas não é capturado. O código a seguir ilustra isso: use strict; meuarr = ("Este é um e que é dois." = ~ /(?:one).*(two)/); print $ arr [0], "\\ n"; print $ arr [1], "\\ n"; A saída do código é: dois que impediu o primeiro grupo, "(um)" de ser capturado, transformando-o, "(:? Um)". Desde a saída, vemos que "um" da corda disponível não foi capturado, como esperávamos.

"dois" tenha sido capturado, e é o único elemento da matriz. Para fazer com que um grupo de não captura, use a seguinte sintaxe: (?: GroupContent), incluindo modificadores em grupos de não captura Vimos como você pode incorporar modificadores em um regex. Você pode querer incluir um modificador em um grupo não-captura. Há duas maneiras de fazer isso. Digamos que você deseja incluir o modificador, eu no sub grupo de não captura "(?: Um)" acima. Você pode fazê-lo como este: um) A expressão a seguir produz uma partida (:( i?): ". Este é um e que é dois" = ~ /(?:(?i)one).

*(two)/Você pode usar o código a seguir para testar: use strict; if (". Este é um e que é dois" = ~ /(?:(?i)one).*(two)/) {print "Matched \\ n"; } Else {print "Not Matched \\ n"; } Modificadores em Grupos Dissemos que colocar um modificador em um regex é o mesmo que ter o modificador apenas no final da regex. A pergunta que você pode ter é a seguinte:.. "Se o modificador está em um grupo, ele teria seu efeito apenas no grupo ou em toda a regex Vamos apenas escrever quatro roteiros curtos para verificar que este é o primeiro: use strict ; if (". Este é um e que é dois" = ~ /((?i)one).

*(two)/) {print "Matched \\ n";} else {print "\\ n Não Matched";} A regex acima é "/((?i)one).*(two)/". Note-se que na seqüência de caracteres disponíveis, "UM" é em maiúsculas. Matching ocorre no código acima. Aqui estamos lidando com uma captura . grupo Considere o seguinte código ainda com um grupo de captura: use strict; if (". Este é um e que é dois" = ~ /((?i)one).*(two)/) {print "Matched \\ n ";} else {print" \\ n Não Matched ";} A regex acima ainda é" /((?i)one).*(two)/ONE "ainda está no" Note-se que na seqüência de caracteres disponíveis, ".

maiúsculas e "dois", desta vez é no caso superior Matching não ocorre no código acima No regex "dois" está em baixa caso;.. é por isso que a correspondência não ocorre. Os dois programas acima lidar com a captura de grupo, seria

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.