我有一个如下变量:
G12345(@@)
如何在变量中只保留数字12345.我之前在PHP中已经完成了,但是我在Perl中找不到方法。
答案 0 :(得分:6)
$v =~ s/\D//g;
应该可以解决问题。
(正则表达式将“非数字”替换为“无”,全局)
答案 1 :(得分:5)
这也可以在没有正则表达式的情况下完成:Transliterate: tr///
use warnings;
use strict;
my $s = 'G12345(@@)';
$s =~ tr/0-9//cd;
print "$s\n";
__END__
12345
答案 2 :(得分:1)
用空字符串替换任何非数字字符(\ D是非数字的):
$var =~ s/\D+//g;
答案 3 :(得分:1)
你也可以这样做:
my ( $number ) = $string =~ /(\d+)/;
这意味着在'(@@)'后面还有其他数字 - 无论出于何种原因,你不会突然将这些数字连接到'G'和'('。之间的数字。所以 capture 方法确保您获得第一组连续的数字。