"(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