我想基本上試圖從最後出現的一個或多個數字中分離出特定數量的文本。當有一個尾隨號碼時,下面的工作是有效的,但是有兩個或更多的時候不是。 (\ d +)不應該在「P_TIME12」中獲得「12」嗎?perl正則表達式來獲得尾隨號碼
my @strs = ('P_ABC1','P_DFRES3','P_TIME12');
foreach my $str (@strs) {
if ($str =~ /^P_(\w+)(\d+)$/) {
print "word " . $1 . " digits " . $2 . "\n";
}
}
結果
word ABC digits 1
word DFRES digits 3
word TIME1 digits 2
TIA
使用'\ pL'匹配的字母,而不是'\ w'。 – tchrist 2012-03-20 00:00:34