Recent Posts
Recent Comments
03-29 12:51
관리 메뉴

동글동글 라이프

More fun with strings(substr,split,join) 본문

개발자 이야기/Perl

More fun with strings(substr,split,join)

동글동글라이프 2008. 11. 3. 10:49


perl에 대한 공부를 처음 시작할 때 www.perl.com 에 놀러갔다가

이 문서를 정리하는것이 좋겠다 라는 생각이 들어 번역을 시도했다.

번역하다보니 내 맘대로의 해석이 되는듯 하여 오역이 많을것이라 예상 중 ㅡ_ㅡ;



= More fun with strings



문자열을 쉽고 재미있게 다루기 위해 perl은 3개의 함수 substr(), split(), and join() 를 제공한다.

 

만약 문자열의 한부분을 쉽게 바꾸려 한다면... substr 함수를 사용해라.

 

substr함수는 2개 또는 3개의 매개변수를 사용되는데

 

첫번째 매개변수는 문자열이 저장된 변수명 ,

 

두번재 매개변수는 문자열이 출력될 첫번째 위치를 넣어주면 된다.

 

만약 원하는 구역까지만 문자를 출력하려면 


번째 매개변수를 사용하여 그 문자열의 크기를 명시하면 된다.

 
1
2
3
my $greeting = "Welcome to Perl!\n";
print substr($greeting, 0, 7);     # "Welcome"
print substr($greeting, 7);        # " to Perl!\n"
뒤에서 부터 찾을 수는 없는가??
당연히 가능하다!
1
2
my $greeting = "Welcome to Perl!\n";
print substr($greeting, -6, 4);      # "Perl"

(Remember that inside double quotes, \n represents the single new-line character.)

 

음.. 이런건 기초적인 문법인데.. 친절한 사람들... 

 

substr함수로 찾은 문자열을 우리가 원하는 문자로 바꿀 수 있다.


그리고 유용한 기술로써 처음에 문자를 삽입하는 방법도 있다.


1
2
3
4
5
my $greeting = "Welcome to Java!\n";

substr($greeting, 11, 4) = 'Perl';    # $greeting is now "Welcome to Perl!\n";
substr($greeting, 7, 3)  = '';        #       ... "Welcome Perl!\n";
substr($greeting, 0, 0)  = 'Hello. '; #       ... "Hello. Welcome Perl!\n";


split() 함수는 문자를 파트별로 쪼개거나 구역의 한부분을 반환해주는 함수이다.

split()는 일반적으로 두개의 파라메터를 가지며 정규표현식을 써서 원하는 문자열을 나눌 수 있다.

정규표현식에서 / / 는 하나의 스페이스 문자를 뜻한다.


이 문법을 이용하여 한번 문자들을 나누어 보자.


1
2
my $greeting = "Hello. Welcome Perl!\n";
my @words    = split(/ /, $greeting);   # Three items: "Hello.", "Welcome", "Perl!\n"\

스페이스를 기준으로 문자열을 나누어 @words라는 배열에 넣어주었다.
세세한 조건을 주어 사용할때는 3개의 매개변수를 사용할 수있다.
이 숫자는 배열에 들어갈 문장의 갯수인데 이 숫자만큼 배열의 요소들의 수가 결정된다.

1
2
my $greeting = "Hello. Welcome Perl!\n";
my @words    = split(/ /, $greeting, 2);   # Two items: "Hello.", "Welcome Perl!\n";

물론, 나누는것이 있으니 문자열을 결합시켜주는 join()이라는 함수도 있다.
join 함수는 배열에 있는 단어들을 서로 붙여서 주는 역활을 한다.
단 붙여줄때 어떤 문자를 우리가 삽입해 붙여 줄 수 있는것이 join함수의 특징이다.

1
2
3
4
my @words         = ("Hello.", "Welcome", "Perl!\n");
my $greeting      = join(' ', @words);       # "Hello. Welcome Perl!\n";
my $andy_greeting = join(' and ', @words);   # "Hello. and Welcome and Perl!\n";
my $jam_greeting  = join('', @words);        # "Hello.WelcomePerl!\n";



'개발자 이야기 > Perl' 카테고리의 다른 글

CPAN Author 등록하기  (0) 2008.11.13
perl Array & C language Array  (4) 2008.11.03
Chapter 5. Moving On  (0) 2008.10.31
지식IN(naver)에서 질문 검색 후 자동 출력  (6) 2008.10.27
음악을 들어보자 #4  (0) 2008.10.16
Comments