As seguintes expressões jogo: "xy 5678" = ~ /(^ x | y) z /"34 yz 56 G" = ~ /(^ x | y) z /More on Sub Cordas com Partes Comuns Imagine que você deseja corresponder "livro" ou "guarda-livros" ou "guarda-livros". O sub string "livro" ocorre nas três frases (sub strings). O sub string "guarda-livros" ocorre em duas das frases; e os contadores de cordas sub ocorrem em apenas uma das frases. Nosso objetivo nesta seção é desenvolver um padrão eficiente para combinar sub cordas, como os três acima.
Você pode fazer isso: /livro | contador | guarda-livros /O problema aqui (ineficiência) é que você tem que digitar "livro" três vezes e você tem que digitar "keeper" duas vezes. O seguinte padrão é eficiente: /livro (guarda-redes (s |) |) /Primeiro de tudo, observar aqui que você tem um grupo aninhado; grupos podem ser aninhados. Há também dois metacaracteres alternância, |; um dentro de um grupo aninhado interior; o outro dentro do grupo externo. No grupo aninhado interior, Perl tem que escolher entre "s" ou nada. No grupo exterior, Perl ainda tem que escolher entre "keeper (s |)" ou nada.
"livro" irá sempre ser escolhido. Desta forma, Perl irá corresponder "livro", "guarda-livros" ou "guarda-livros". A situação aqui é semelhante à primeira situação acima, mas é mais complexo aqui. Captura Jogos Os metacaracteres de agrupamento (), ou seja, os parênteses também servem a outro propósito completamente diferente: eles permitem a captura de sub cordas na seqüência disponível que combinava. Bem, o padrão não é geralmente uma palavra exata ou uma frase exata.
Após o encontro ocorreu com a seqüência de caracteres disponíveis, você pode saber exatamente a palavra ou frase na seqüência disponível que foi combinado? Sim, você pode saber isso, e é graças ao agrupamento. Até 9 grupos em um padrão pode ser lembrado quando ocorre correspondente. Em outras palavras, você pode saber até 9 sub cordas exatas na seqüência disponível, quando a correspondência ocorreu. Perl tem