텍스트 파일을 다양한 일치 변수로 구문 분석하는 긴 정규 표현식이 있습니다.펄에서 정규 표현식 일치 변수를 반복 처리하려면 어떻게해야합니까?
견고성을 위해 일치 변수에 공백이 포함될 수 있습니다. 일치 변수를 반복하여 체계적으로 공백을 제거하고 싶습니다.
예를 들어 일치 입력 변수 $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
을 떠난다.
각 일치 변수의 공백을 더 잘 명명 된 스칼라에 복사하기 전에 공백을 제거 할 수있는 방법이 있을까요? 아니면 잘 알려진 스칼라 자체를 반복하여 거기에서 공백을 제거 할 수있는 방법이 있습니까? ?
나는 이것을 참조로 할 수있는 방법이있을 것이라고 추정한다. 먼저 배열의 경기 변수를 저장할 수
이름이 매겨진 변수에 매치 연산의 결과를 할당하기 만하면 ('m //')는'$ 2, $ 3, ...'를 참조 할 필요가 없다. 'my ($ serNum, ...) = ($ foo = ~ m/pattern /);' – Ether
고마워요. 유용한 점입니다. – EMiller