Friday, January 19, 2007
Perl/펄] 문자열/배열 양쪽 공백 제거, 정규식 사용; Trim Leading / Trailing Spaces
문자열의 앞이나 뒤에 붙어 있는 불필요한 공백 문자(스페이스; 탭 문자 포함)를 삭제하는 함수가, 펄에는 내장되어 있지 않기에, 직접 만들어 주어야 합니다.
단, 문자열 속에 포함되어 있는 공백들은 아무리 많아도 그대로 둡니다.
만약 앞쪽이나 뒤쪽의 공백만 선택적으로 지우려면 위의 trim 함수에서,
필요 없는 행을 골라서 주석화되면 됩니다.
단, 문자열 속에 포함되어 있는 공백들은 아무리 많아도 그대로 둡니다.
문자열/배열, 앞 뒤 좌우 스페이스/탭(Tab) 문자 지우기 함수 예제
#!/usr/bin/perl
use strict; use warnings;
################################################
### 하나의 문자열에서 양쪽 공백 모두 제거
my $s = " AAA BBB CCC ";
printf( "[%s]\n", trim($s) );
# 출력 결과: [AAA BBB CCC]
################################################
### 배열의 각 요소들에서 양쪽 공백 모두 제거
# 양쪽에 불필요한 공백이 붙은 배열
my @a = ( " 자장면 ",
"똠방각하 ",
" 탕수육",
" 팔보채 "
);
@a = trim(@a); # 배열에서 양쪽 공백 모두 제거
printf("[%s]", $_) foreach (@a);
# 출력 결과: [자장면][똠방각하][탕수육][팔보채]
sub trim {
my @result = @_;
foreach (@result) {
s/^\s+//; # 앞쪽 공백 지우기
s/\s+$//; # 뒤쪽 공백 지우기
}
return wantarray ? @result : $result[0];
}
use strict; use warnings;
################################################
### 하나의 문자열에서 양쪽 공백 모두 제거
my $s = " AAA BBB CCC ";
printf( "[%s]\n", trim($s) );
# 출력 결과: [AAA BBB CCC]
################################################
### 배열의 각 요소들에서 양쪽 공백 모두 제거
# 양쪽에 불필요한 공백이 붙은 배열
my @a = ( " 자장면 ",
"똠방각하 ",
" 탕수육",
" 팔보채 "
);
@a = trim(@a); # 배열에서 양쪽 공백 모두 제거
printf("[%s]", $_) foreach (@a);
# 출력 결과: [자장면][똠방각하][탕수육][팔보채]
sub trim {
my @result = @_;
foreach (@result) {
s/^\s+//; # 앞쪽 공백 지우기
s/\s+$//; # 뒤쪽 공백 지우기
}
return wantarray ? @result : $result[0];
}
만약 앞쪽이나 뒤쪽의 공백만 선택적으로 지우려면 위의 trim 함수에서,
s/^\s+//; # 앞쪽 공백 지우기
s/\s+$//; # 뒤쪽 공백 지우기
s/\s+$//; # 뒤쪽 공백 지우기
필요 없는 행을 골라서 주석화되면 됩니다.
tag: perl
Perl | 펄
<< Home