Plik wygląda
[N the computer end] [M whatever] [N you look] [N why not]
Potrzebuję tylko słów w nawiasie, które zaczynają się od [N
więc tutaj chcę, aby koniec komputera wyglądał, dlaczego nie mogą, ale nie muszą, znajdować się w tej samej linii
Próbowałem coś takiego:
if($line =~/[N(.+?)]/)
ale pasuje tylko do pierwszego z każdej linii.
Odpowiedzi:
4 dla odpowiedzi № 1Użyj g
modyfikator wyrażenia regularnego, aby wyszukać dopasowania lobalne „g”. Albo tak:
while ($line =~ /[N(.+?)]/g) {
# $1 contains the text between "[N" and "]"
}
Albo tak:
my @matches = $line =~ /[N(.+?)]/g;
# @matches contains all of the matching items of text
0 dla odpowiedzi nr 2
Będziesz musiał zmienić go na pętlę while, aby iterować po każdym dopasowaniu grupowym Dokumentacja Perla ilustruje to.