Dlaczego mój chciwy regex Perla nadal nie pasuje do siebie?
Powiedzmy, że mam linię zawierającą następujący ciąg:
"$tom" said blah blah blash. "$dick" said "blah blah blah". "$harry" said blah blah blah.
i chcę wyodrębnić
"$dick" said "blah blah blah"
Mam następujący kod:
my ($term) = /(".+?" said ".+?")/g;
print $term;
Ale daje mi to więcej niż potrzebuję:
"$tom" said blah blah blash. "$dick" said "blah blah blah"
Próbowałem pogrupować mój wzór jako całość, używając parenów nie przechwytujących:
my ($term) = /((?:".+?" said ".+?"))/g;
Ale problem nadal występuje.
Ponownie przeczytałem sekcję Nongreedy Quantifiers w Learning Perl, ale jak dotąd nigdzie mnie nie ma.
Dziękujemy za wszelkie wskazówki, które możesz hojnie zaoferować :)