我有一個很長的正則表達式,它將文本文件解析爲各種匹配變量。如何迭代Perl中的正則表達式匹配變量?
爲了健壯性,匹配變量可能包含空格。我想通過迭代匹配變量來以系統方式刪除空白。
例如,我有匹配變量$2
到$14
包含一些空格。
我可以這樣做:
my @columns = my ($serNum, $helixID, $initResName, $initChainID,
$initSeqNum, $initIcode, $endResName, $endChainID, $endSeqNum,
$endICode, $helixClass, $comment, $length) =
($2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14);
### Remove whitespace
foreach my $element (0..$#columns) {
$columns[$element] =~ s/^\s+//;
$columns[$element] =~ s/\s+$//;
}
但是,這不僅能消除在@column
中的元素的白色空間,離開正確命名標量,$serNum
,$helixID
等不變。
有沒有辦法在每個匹配變量中刪除空白空間,然後再將它們複製到更有名的標量之前,還是有一種方法可以遍歷這些熟悉的標量並從中刪除空白?
我推測可能有一些方法可以用引用來做到這一點。
請注意,如果您只是將匹配操作的結果指定給您的命名變量,那麼您不必引用'$ 2,$ 3,...'名稱('m //'將返回在我的($ serNum,...)=($ foo =〜m/pattern /);' – Ether 2010-06-29 19:32:00
謝謝。這是一個有用的觀點。 – EMiller 2010-06-29 19:39:33