Grupy nieprzechwytujące, (?:WZORZEC)
Nawiasy okrągłe w wyrażeniach regularnych nie muszą wyzwalać zapisywania dopasowanych części wzorca w pamięci. Można ich użyć wyłącznie do grupowania przez zastosowanie specjalnej sekwencji (?:WZORZEC)
. Dzięki temu w grupach przechwytujących nie pojawiają się niepożądane dane.
Przypuśćmy, że chcę dopasowywać imiona po obu stronach spójników i
albo lub
. W tablicy @array
mam kilka łańcuchów z takimi parami imion. Spójnik może się zmieniać, więc w wyrażeniu regularnym używam alternacji i|lub
. Problemem jest pierwszeństwo operatorów. Alternacja ma wyższe pierwszeństwo niż sekwencja, więc aby wzorzec zadziałał, muszę umieścić alternację w nawiasie okrągłym, (\S+) (i|lub) (\S+)
:
#!/usr/bin/perl my @strings = ( "Fred ...
Get Perl. Mistrzostwo w programowaniu now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.