m оператор регулярного выражения в Perl - PullRequest
0 голосов
/ 06 ноября 2018

В чем разница между регулярным выражением m [] и m {} в Perl? Как $ 1, $ 2 и т. Д. Соответствуют шаблону "(((Cu) (Na)) (Hg))"? спасибо

1 Ответ

0 голосов
/ 07 ноября 2018

Нет разницы между m{} и m[]. Perl позволяет вам изменять разделители регулярных выражений, чтобы их было легче читать в заданном контексте.

$var =~ m/*.zip/ и $var =~ m{*.zip} и $var =~ m[*.zip] и $var =~ m#*.zip# все совпадают одинаково.

Для групп захвата захваты всегда обрабатываются слева направо, для вашего примера:

my $foo = 'CuNaHg';
if ( $foo =~ m{(((Cu)(Na))(Hg))} ) {
    print $1; # CuNaHg 
    print $2; # CuNa
    print $3; # Cu
    print $4; # Na
    print $5; # Hg
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...