#regex #perl
#регулярное выражение #perl
Вопрос:
У меня есть переменная, подобная приведенной ниже:
G12345(@@)
Как я могу сохранить в переменной только числа 12345. Я делал это раньше в PHP, но я не могу найти способ в Perl.
Ответ №1:
$v =~ s/D//g;
должно сработать.
(Регулярное выражение заменяет «Не число» на «ничего» глобально)
Комментарии:
1. Это регулярное выражение. Это выполняет замену. Оно заменяет «Не число» на «ничего». Это делает это глобально для каждого бита переменной.
Ответ №2:
Это также можно сделать без регулярных выражений: Transliterate: tr///
use warnings;
use strict;
my $s = 'G12345(@@)';
$s =~ tr/0-9//cd;
print "$sn";
__END__
12345
Ответ №3:
Замените любые нечисловые символы пустой строкой (D нечисловой):
$var =~ s/D //g;
Ответ №4:
Вы также можете сделать это таким образом:
my ( $number ) = $string =~ /(d )/;
Это означает, что если бы после ‘(@@)’ стояли какие-то другие цифры — по какой-либо причине вы бы внезапно не объединили эти цифры с числом, которое находится между ‘G’ и ‘(‘. Таким образом, метод capture гарантирует, что вы получите первый набор смежных цифр.