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

Regex Agrupamentos Perl

int "\\ $ 3 é:", $ 3, "\\ n"; A saída é do código acima: $ 1 é: keepers $ 2 é: s $ 3 é: O padrão iria corresponder "guarda-livros", "guarda-livros" ou "o livro". No entanto, temos dois grupos; um dentro do outro. É estes dois grupos que podem ser lembradas. É por isso que para a saída, $ 3 não tem nada para mostrar, como nada foi atribuído a ele. O grupo externo no padrão é gato (s |) eo grupo interno é (s |). O grupo externo corresponde a "gatos" em "housecats". O grupo interno corresponde a "S" no final do "housecats". Deixe-me fazer mais alguma explicação sobre estes captura.

"(guarda-redes (s |) |)" significa "guardião (s |)" ou nada, e "keeper (s |)" significa "guardiões" ou "guardião"; assim "guardiões" ao lado de "livro" é capturado. "(s |)" é um grupo e os grupos podem ser capturados; que significa "s" ou nada. Note-se que isto não é necessariamente o grupo que é combinado; é o padrão que está combinado. O sub seqüência de match-poder que tem o nosso "s" é guarda-livros. Como "guarda-livros" é correspondido, o nosso "s" é capturado. Captura e de correspondência não são as mesmas coisas.

Depois ocorre correspondente, se houver algum grupo na sub texto correspondente na cadeia disponíveis, o grupo é capturado (atribuído a uma variável). Capturar na lista Contexto No contexto de lista, uma correspondência, /regex /, com agrupamentos retornará a lista de valores do grupo combinados ($ 1, $ 2, ...). Gostaria de ilustrar isso, mostrando-lhe como para coincidir com o tempo; este é um exemplo importante. A seguir produz uma partida. (meus $ hrs, meus $ minutos, meus $ segs) = ($ theTime = ~ /(\\ d \\ d): (\\ d \\ d): (\\ d \\ d) /); Esta declaração não está no se-condição.

O código a seguir ilustra isso: use strict; my $ time = "10:20:15"; (meus $ hrs, meus $ minutos, meus $ segs) = ($ theTime = ~ /(\\ d \\ d): (\\ d \\ d): (\\ d \\ d) /); print "Hrs é:", $ hrs, "\\ n"; print "Mins é:", $ min, "\\ n"; print "Secs é:", $ seg, "\\ n"; A saída desse código é: Hrs é: 10 Mins é: 20 Secs é: 15 Se você sabe o significado do contexto de lista em Perl, tudo no código deve ser auto-explicativo. Você também pode usar uma matriz em vez de uma lista. Tempo para fazer uma pausa. Continuamos na próxima parte da série.

Chrys Para chegar a qualquer uma das partes desta série, basta digitar o título correspondente abaixo e meu nome, Chrys, na caixa de pesquisa da página e clique em Procurar (menu utilização se disponível): Expressões Regulares em Perl para a expressão regul

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