Eugene Grosbein
unread,Apr 4, 2019, 6:04:58 AM4/4/19You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
03 апр. 2019, среда, в 17:23 NOVT, Mikhail Stakhanov написал(а):
MS> Hе могу сообразить как отпрезать:
MS> ($key,$desc) =($1,$2) if ($_ =~ /^(.*?)\s(.*+)(\s|#|;)?+$/);
MS> ^^^^^
MS> вот здесь:
MS> $1 до 1го пробела
MS> $2 до последнего пробела или конца строки
MS> если есть #что то или ;что-то то это отрезать
MS> строка вида:
MS> Inboud /var/.... # Что-то не берется...
Во-первых, $_ =~ /.../ никогда писать не надо, так как
$_ используется по дефолту и лучше просто писать if /.../;
Оператор =~ применяет /.../ к указанной недефолтной переменной
и он не нужен в случае $_.
Во-вторых: /^(.+?)\s+([^#;\s]+)/
То есть, в начале идёт непустая строка до первого пробела,
затем один или более пробелов, затем вторая строка матчится жадно,
но в неё не включаются пробелы, решетки и точка с запятой,
то есть матчинг закончится перед такими символами, если они есть.
И если дальше там что-то есть - оно нас никак не интересует и мы
этот хвост даже матчить не будем.
Eugene