Как я могу хранить только числа в переменной в Perl? - PullRequest
2 голосов
/ 05 мая 2011

У меня есть переменная, подобная этой ниже:

G12345 (@@)

Как мне сохранить в переменной только цифры 12345. Я делал это раньше в PHP, но не могунайти путь в Perl.

Ответы [ 4 ]

6 голосов
/ 05 мая 2011

$v =~ s/\D//g; должно сработать.

(Регулярное выражение заменяет «Не число» на «ничто», глобально)

5 голосов
/ 05 мая 2011

Это также можно сделать без регулярных выражений: Транслитерация: tr ///

use warnings;
use strict;

my $s = 'G12345(@@)';
$s =~ tr/0-9//cd;
print "$s\n";

__END__

12345
1 голос
/ 05 мая 2011

Вы также можете сделать это следующим образом:

my ( $number ) = $string =~ /(\d+)/;

Это означает, что после '(@@)' должны были появиться какие-то другие цифры - по любой причине, что бы вы внезапно не связали эти цифры с числом, лежащим между "G" и "(". метод захвата гарантирует, что вы получите первый набор непрерывных цифр.

1 голос
/ 05 мая 2011

Замените любые нечисловые символы пустой строкой (\ D не числовой):

$var =~ s/\D+//g;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...