我有一个很长的正则表达式,它将文本文件解析为各种匹配变量。如何迭代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