perl中使用s命令。

若干條記錄,如下所示。
BGM001.....
NADabcd....
SG001uiqt...
SG17001+09999...
SG17002+1256....
SG7xxxxxxx....
UNT20071217
其中BGM、NAD、SG001、SG17001、SG17002、SG7、UNT是RecordType。現在要求對於每條記錄返回其RecordType。該問題麻煩在RecordType的長度不確定,無法通過$RecordType=substr($_,0,$length)來獲得。假設每條記錄使用$_變量來代表。
但是有一點是確定的,所有的RecordType只有這7種。此時可以利用s命令來解決。
s用來在某個字符串中查找匹配模式,並進行個性化替換。
my recordType
$RecordType = $_;
$RecordType =~ s/(BGM|NAD|SG001|SG17001|SG17002|SG7|UNT).*/$1/;
注意,這裏最好先將$_的值賦給$RecordType,因爲s命令會改變$_的值。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章