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.