如何在Perl中仅保留变量中的数字?

时间:2011-05-05 14:55:42

标签: regex perl

我有一个如下变量:

G12345(@@)

如何在变量中只保留数字12345.我之前在PHP中已经完成了,但是我在Perl中找不到方法。

4 个答案:

答案 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 方法确保您获得第一组连续的数字。