Извлечь строку из переменной, переданной в параметре
Моему Perl-скрипту нужны ARG 0 и ARG 1, которые выдаются веб-приложением./telnet 10.10.10.10 78-0/1/1
Я хочу взять из ARG1 только 0/1/1, а не 78-0 / 1/1, и эти значения различаются каждый раз здесь на другом примере:
./telnet 10.10.10.10 90-0 / 2/2, поэтому мне нужно только 0/2/2 Кто-нибудь, пожалуйста, помогите!!!!!
3 ответа
Вы можете использовать замену, чтобы удалить все до тире:
my $string = '90-0/2/2';
$string = s/^.+-//;
Если вы хотите быть более конкретным, вы можете удалить только цифры:
$string =~ s/^[0-9]+-//;
^
соответствует началу строки..
соответствует чему угодно (кроме новой строки).+
означает, что предыдущая вещь должна быть повторена по крайней мере один раз.
Вместо удаления части, которую вы не хотите, вы можете захватить часть, которую вы хотите
my ($param) = $ARGV[1] =~ /-(.+)/
Вы можете использовать функцию разделения Perl.
my $ARG1 = '90-0/2/2';
my $required_part = (split(/-/,$ARG1))[1];
Теперь $required_part содержит 0/2/2