/ / Como faço para corresponder algo assim usando perl regex? - regex, perl

Como faço para combinar algo assim usando o perl regex? - regex, perl

O arquivo parece

[N the computer end] [M whatever] [N you look] [N why not]

Eu só preciso das palavras entre parênteses que começam com [N então aqui eu quero pegar o computador final você olha por que não eles podem ou não na mesma linha

Eu tentei algo assim:

if($line =~/[N(.+?)]/)

mas corresponde apenas ao primeiro de cada linha.

Respostas:

4 para resposta № 1

Use o g modificador na expressão regular para procurar correspondências globais "g". Ou assim:

while ($line =~ /[N(.+?)]/g) {
# $1 contains the text between "[N" and "]"
}

Ou assim:

my @matches = $line =~ /[N(.+?)]/g;
# @matches contains all of the matching items of text

0 para resposta № 2

Você precisará alterá-lo para um loop while para iterar a cada partida do grupo. Documentação Perl ilustra isso.