다음과 같이 선행 및 후행 공백을 트리밍하는 내장 함수가 trim(" hello world ") eq "hello world"
있습니까?
답변
다음은 정규 표현식을 사용하는 한 가지 방법입니다.
$string =~ s/^\s+|\s+$//g ; # remove both leading and trailing whitespace
Perl 6에는 트림 기능이 포함됩니다.
$string .= trim;
출처 : Wikipedia
답변
String :: Util 에서 다음 trim
메소드를 사용할 수 있습니다 .
편집자 주 : String::Util
핵심 모듈 아니지만, 당신은에서 설치할 수 있습니다 CPAN 에 [sudo] cpan String::Util
.
use String::Util 'trim';
my $str = " hello ";
$str = trim($str);
print "string is now: '$str'\n";
인쇄물:
문자열은 이제 ‘hello’입니다.
그러나 스스로하는 것은 쉽습니다.
$str =~ s/^\s+//;
$str =~ s/\s+$//;
답변
내장 trim
함수는 없지만 간단한 대체를 사용하여 쉽게 구현할 수 있습니다.
sub trim {
(my $s = $_[0]) =~ s/^\s+|\s+$//g;
return $s;
}
또는 Perl 5.14 이상에서 비파괴 대체 사용 :
sub trim {
return $_[0] =~ s/^\s+|\s+$//rg;
}
답변
이 perlmonk의 스레드 에 따르면 :
$string =~ s/^\s+|\s+$//g;
답변
답변
Text :: CSV를 사용하는 사람들을 위해이 스레드를 찾은 다음 CSV 모듈 내에서 스위치를 통해 제거 할 수 있음을 알았습니다.
$csv = Text::CSV->new({allow_whitespace => 1});
논리는 당신이 스트립을 원한다면 1로 설정한다는 점에서 거꾸로됩니다. 이것이 누구에게나 도움이되기를 바랍니다.