我有一个像
这样的号码 $mynum = "(800)-756-1235";
我想删除所有特殊字符,只想在这里使用数字 如何在perl中完成?
答案 0 :(得分:5)
此正则表达式将删除所有非数字字符。
$mynum =~ s/\D+//g;
答案 1 :(得分:2)
实际上,$mynum
的值是一个字符串,而不是一个数字,因此您的代码应该类似于
$mynum = '(800)-756-1235';
$mynum =~ s/\D+//g;
从$mynum
删除所有无字符字符后,如果您使用$mynum
作为数字,Perl会自动将其转换为数字。
答案 2 :(得分:1)
我刚刚在日志中学到这一点,所以你走了。
您可以使用正则表达式仅匹配这样的数字,并将值分配到其他位置。
my $num = "(800)-765-1235";
my @newNum = $num =~ /\d+/g;
然后,您可以join('', @newNum)
获取您的电话号码。
你也可以my $newNum = join('', $num =~ /\d+/g)
。但这很难理解。
编辑 - 删除了不需要的括号。
答案 3 :(得分:1)
my $num = '(800)-765-1235';
$num =~ y/0-9//cd;