2011-05-05 100 views

回答

6

$v =~ s/\D//g;應該這樣做。

(正則表達式替代物「不是數字」與「無」,在全球範圍)

+0

你也可以解釋一下,所以我可以理解它... – Nidis 2011-05-05 15:01:25

+0

這是一個正則表達式。它做了替代。它用「沒有」代替「不是一個數字」。它爲全局變量的每一位都做了它。 – Quentin 2011-05-05 15:05:39

1

替換爲空字符串的任何非數字字符(\ d爲非數字):

$var =~ s/\D+//g; 
5

這也可以不用正則表達式來完成:Transliterate: tr///

use warnings; 
use strict; 

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

__END__ 

12345 
1

你也可以這樣來做:

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

這意味着在'(@@)'之後會出現其他數字 - 無論出於何種原因,您不會突然將這些數字連接到位於'G'和'(' 。所以捕獲方法確保你得到第一組連續數字。

相關問題