>  기사  >  웹 프론트엔드  >  Perl Substr() 함수 및 해당 application_javascript 기술

Perl Substr() 함수 및 해당 application_javascript 기술

WBOY
WBOY원래의
2016-05-16 15:25:201908검색

perl substr() 함수 예제, substr() 함수 예제 코드 - 문자열 내의 OFFSET 오프셋에서 시작하여 EXPR의 하위 문자열을 반환합니다.

문법:

하위 문자열 EXPR, OFFSET, LEN, REPLACEMENT
하위 문자열 EXPR, OFFSET, LEN
하위 문자열 EXPR, OFFSET

정의 및 사용법

문자열 내의 오프셋 OFFSET부터 시작하여 EXPR의 하위 문자열을 반환합니다. OFFSET이 음수이면 문자열은 끝에 많은 문자로 시작됩니다. LEN이 지정된 경우 바이트 수를 반환하거나 문자열 끝까지(지정되지 않은 경우) 모든 바이트를 반환합니다. len이 음수인 경우 문자열을 끝내는 문자 수입니다.

REPLACEMENT로 지정된 하위 문자열을 바꾸는 경우 REPLACEMENT 문자열을 바꿉니다.

문자열 끝을 벗어나는 하위 문자열을 지정하는 경우 원래 문자열의 유효한 요소만 반환합니다.

반환값

문자열

다음 예를 시도해 보세요.

#!/usr/bin/perl -w
#by www.yiibai.com
$temp = substr("okay", );
print "Substring valuye is $temp\n";
$temp = substr("okay", ,);
print "Substring valuye is $temp\n";

이렇게 하면 다음과 같은 결과가 나타납니다.

하위 문자열 값은 ay
하위 문자열 값은 ka

Perl substr 함수 적용 예시 분석

이 기사에서는 Perl substr 함수의 적용에 중점을 둘 것입니다. Perl 프로그램을 작성할 때 문자열의 일부를 가로채야 할 때가 있습니다. 이때 우리는 일반적으로 이 기능을 구현하기 위해 substr 함수를 사용합니다.

Perl substr 함수 응용

Perl 프로그램을 작성할 때 문자열 내용의 일부를 가로채야 하는 경우가 있습니다. 이때 일반적으로 이 기능을 구현하기 위해 Perl substr 함수를 사용합니다.

$str="testtest"; 
printsubstr($str,0,5); 
$str="testtest"; 
printsubstr($str,0,5); 

위 프로그램을 실행하고 우리가 원하는 결과인 "testt"를 출력합니다. 아래 프로그램을 다시 살펴보세요.

$str="测试文本"; 
printsubstr($str,0,1); 
$str="测试文本"; 
printsubstr($str,0,1); 

이때 "?"가 출력되는데 이는 당연히 우리가 원하는 결과가 아닙니다. Perl에서는 외부에서 입력되는 모든 문자열(프로그램에 작성된 문자열 포함)이 바이트로 처리되기 때문에 "printsubstr($str,0,1);" 이 문장은 단지 "테스트 텍스트"를 의미합니다. 첫 번째 바이트가 제거됩니다. 그러나 한 바이트는 한자를 나타낼 수 없으므로 "?"가 출력됩니다.

위 프로그램이 올바른 결과를 출력하도록 하려면 디코드 기능을 사용하여 "테스트 텍스트"를 Perl 내부 문자열로 변환하여 Perl이 "테스트 텍스트"를 문자열로 처리할 수 있도록 해야 합니다. "substr( $str,0,1);"을 사용하십시오. 가로채는 것은 바이트가 아니라 한자입니다.

Perl substr 함수의 사용법을 살펴보겠습니다.

명령어: substr

구문: substr($string,offset,length)

offset은 시작 문자의 위치를 ​​나타내고, length는 인용된 문자열의 길이를 나타냅니다. length가 생략되면 문자열의 시작 값부터 마지막 ​​문자까지의 길이를 나타냅니다. 그리고

오프셋이 음수 값인 경우 문자열의 오른쪽부터 문자가 지정됩니다.

예:

$s=substr("perl5",2,2);#这时$s="rl"; 
$s=substr("perl5",2);#这时$s="rl5"; 
$s=substr("perl5",-2,2);#这时$s="er"; 
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.