Perl : 문자열 선행 및 후행 공백을 제거하는 기능
다음과 같이 선행 및 후행 공백을 트리밍하는 내장 함수가 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;
perfaq의 완전한 하우투 : http://learn.perl.org/faq/perlfaq4.html#How-do-I-strip-blank-space-from-the-beginning-end-of-a-string-
또한 긍정적 인 미리보기를 사용하여 텍스트 내부의 반복되는 공백을 잘라냅니다.
s/^\s+|\s(?=\s)|\s+$//g
Text :: CSV를 사용하는 사람들을 위해이 스레드를 찾은 다음 CSV 모듈 내에서 스위치를 통해 제거 할 수 있음을 알았습니다.
$csv = Text::CSV->new({allow_whitespace => 1});
논리는 당신이 스트립을 원한다면 1로 설정한다는 점에서 거꾸로됩니다. 이것이 누구에게나 도움이되기를 바랍니다.
한 가지 옵션은 Text :: Trim입니다 .
use Text::Trim;
print trim(" example ");
적용 : s/^\s*//; s/\s+$//;
그것에. 또는 s/^\s+|\s+$//g
화려하고 싶다면 사용 하십시오.
아니요,하지만 s///
대체 연산자와 \s
공백 어설 션을 사용하여 동일한 결과를 얻을 수 있습니다.
'developer tip' 카테고리의 다른 글
모든 EditText에 일관된 스타일 설정 (예 :) (0) | 2020.10.11 |
---|---|
Python은 str.format을 사용하여 선행 0을 추가합니다. (0) | 2020.10.11 |
Android WebView에서 JavaScript 경고가 작동하지 않음 (0) | 2020.10.11 |
두 번 클릭 할 때 div 요소의 강조 표시를 중지하는 방법 (0) | 2020.10.11 |
Python : 수퍼 클래스에서 서브 클래스를 만들려면 어떻게해야합니까? (0) | 2020.10.11 |