$ ramdetails包含以下内容:
RAM details:
BankLabel Capacity MemoryType Speed TypeDetail
4294967296 0 1333 128
4294967296 0 1333 128
当我在$ ramdetails
上释放以下内容时$ramdetails =~ s|(\d+)(\s+\d+\s+\d+\s+\d+\s+$)|$1/$mbmultiplier."MB ".$2|ge;
$ramdetails =~ s/(\d{1,2})(\s+\d+\s+\d+\s+$)/$ramtype$2/g;
$ramdetails =~ s/(\d+)(\s+\d+\s+$)/$1."MHz".$2/ge;
$ramdetails =~ m/(\d+)\s+$/g;
$typedetail = $typedetails{$typedetail};
$ramdetails =~ s/\d+(\s+$)/$typedetail$1/g;
我得到:
RAM details:
BankLabel Capacity MemoryType Speed TypeDetail
4294967296 0 1333 128
4096MB Unknown 1333MHz Synchronous
我不知道为什么只替换最后一场比赛。我知道我对\s+
和\d+
的使用可能有点丰富。
注意:$ramtype
来自之前定义的哈希,$mbmultiplier
我自己说话。
答案 0 :(得分:1)
$
匹配字符串的末尾,或者在字符串末尾的换行符之前。
您希望添加/m
修饰符以更改$
以匹配字符串的结尾或任何换行符之前。