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

Regex Agrupamentos Perl

muitas variáveis ​​internas, 9 dos quais são US $ 1, $ 2, $ 3, US $ 4, US $ 5, US $ 6, US $ 7 e US $ 9. Vejamos um exemplo primeiro, antes de continuar. Considere o seguinte código: use strict; if (". Este é um e que é dois" = ~ /(one).*(two)/) {print "Matched \\ n"; } Else {print "Not Matched \\ n"; } Print "\\ $ 1 é:", $ 1, "\\ n"; print "\\ $ 2 é:", $ 2, "\\ n"; A seqüência de caracteres disponível é "Este é um e que é dois." Vamos olhar para o padrão. O padrão é /(one).

*(two)/; ele irá corresponder qualquer seqüência de sub disponível na seqüência que começa com "um" e termina com "dois". Recordar que o ponto, seguido pelo asterisco representa qualquer conjunto de caracteres. Note-se que existem dois grupos no padrão. Os grupos são (um) e (dois). Na seqüência disponível, você tem a sub corda, "um", em seguida, depois de uma certa distância, você tem a sub string "dois". O grupo (um) corresponde à sub string "um" na seqüência disponível. O grupo "dois" coincide com a sub string "dois", na seqüência de caracteres disponíveis.

Devido a esta harmonização, a sub string "um" na seqüência disponível é atribuído à variável interna, US $ 1; a seqüência de sub, "dois" na seqüência disponível é atribuído à variável interna, $ 2. No código, as duas últimas declarações imprimir os valores dessas duas variáveis. Se você nunca teve os grupos (parênteses), harmonização ainda iria ocorrer, mas nada seria atribuir às variáveis ​​internas, (US $ 1 e US $ 2). Em outras palavras, nada poderia ser capturado. A saída do código é: $ 1 é: um $ 2 é: dois Você pode ter até 9 grupos (pares de parênteses) no padrão.

Se houver pelo menos 9 sub cordas na seqüência disponível que corresponde às 9 grupos no padrão, em seguida, as 9 sub cordas na seqüência disponível seria atribuído a US $ 1, $ 2 ... $ 9, respectivamente. Essa é a primeira correspondência iria para $ 1; a segunda a 2 $, a terceira a $ 3 e assim por diante. Isto é como você se lembra ou captura sub cordas na seqüência disponível após o cruzamento. Nota: se não houver um grupo, então não haveria nada para se lembrar (sem atribuição ocorrerá); nenhuma captura. Você não precisa ter até 9 grupos no padrão; você pode ter qualquer número menor.

E sobre grupos aninhados considere o seguinte código: use strict; if ("guarda-livros, guarda-livros e livros andam juntas." = ~ /livro (guarda-redes (s |) |) /) {print "Matched \\ n"; } Else {print "Not Matched \\ n"; } Print "\\ $ 1 é:", $ 1, "\\ n"; print "\\ $ 2 é:", $ 2, "\\ n"; pr

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