Извлечь строку из переменной, переданной в параметре

Моему 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

Другие вопросы по тегам