컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post [Java/자바] JDK 와 JRE 의 차이점, 차이 - Java Development K...용각산(龍角散) 복용기(?) / 용각산의 역사(?) - 龍角散:日本ののどを守って200年자바(Java)와 자바스크립트(JavaScript)의, 다른 점, 차이/차이점[HTML-CSS] div / textarea / input 등의 태그에 아이디(id) 지...[Perl/펄] 화면 일시/몇초간 중지시키기. Enter 키 누르면 다음으로 넘어가게 - ...[QnA] '이탤릭체', '볼드체'란 어떤 글씨/글꼴인가요? : Italic / Bold ...Visual C/C++ 명령행 컴파일러로 컴파일하기 - cl.exeCygwin(시그윈) 제거/언인스톨(Uninstall) 하는 법도스 화면, 잠시 정지시키는 키는? 도스창 스크롤 일시 중지시키는 키는? - DOS Pau...8월달 윈도우 보안 패치 KB918899 가 IE를 다운(먹통)시킴

[Perl 정규식] 문자열 치환(바꾸기)/순서 변경/삭제 - s/// 치환 연산자(Substitution Operator)

Friday, August 18, 2006

펄(Perl)에서 문자열을 치환(Replace)할 때는 s/// 연산자를 사용합니다.

가령 디폴트 변수인 $_ 에, 다음과 같이
$_ = "안녕하세요, 맹구씨!";

라는 문자열이 대입되어 있을 때

s/맹구/대추/;

라고 하면

"맹구"가 "대추"로 치환됩니다.

그래서 $_ 의 값은, "안녕하세요, 대추씨!" 가 됩니다.



Perl(펄)에서, 문자열 치환(Replace)하는 각종 예제


(아래 코드 박스를 한 번 클릭한 후, 좌우 화살표키를 누르면 좌우로 스크롤. 빠져나오려면, 코드 박스의 바깥을 클릭.)
#!/usr/bin/perl
use strict; use warnings;


### 가장 간단한 문자열 치환 ###

  $_ = "안녕하세요, 맹구씨!";
  s/맹구/대추/;

  print "$_\n";
# 결과: 안녕하세요, 대추씨!




### 디폴트 변수($_)가 아닌 일반 변수에 든 문자열 치환 ###

  my $temp = "안녕하세요, 맹구씨!";
  $temp =~ s/하세요/히 가세요/;

  print "$temp\n";
# 결과: 안녕히 가세요, 맹구씨!
# "=~" 를 사용해 특정 변수를 Binding 해주지 않으면, 디폴트 변수인 $_ 의 내용을 치환



### 문자열 추가/삽입 ###

  $_ = "안녕하세요, 맹구씨!";
  s/(맹구)/$1씨와 대추/;

  print "$_\n";
# 결과: 안녕하세요, 맹구씨와 대추씨!




### 순서 바꾸기 묘기(?)###

  $_ = "안녕하세요, 맹구씨!";
  s/(안녕하세요).*(맹구씨)/$2, $1/;

  print "$_\n";
# 결과: 맹구씨, 안녕하세요!
# $1 은, 첫번째 소괄호 "()" 속의 정규식에 매치되는 부분을 메모리에 저장하는 변수.
# $2 는 두번째 소괄호에서 매치되는 부분
# 복잡한 치환 작업을 할 때 사용하는 것입니다.
# 위의 경우, $1 은 (안녕하세요) 이고, $2 는 (맹구씨) 입니다.




### 문자열 일부분만 삭제 ###

  $_ = "안녕하세요, 맹구씨!";
  s/맹구//;

  print "$_\n";
# 결과: 안녕하세요, 씨!




### 전역 문자열 치환 ###

  $_ = "안녕하세요, 맹구씨! 맹구씨! 맹구씨! 맹구씨!";
  s/맹구/대추/g;

  print "$_\n";
# 결과: 안녕하세요, 대추씨! 대추씨! 대추씨! 대추씨!
# / 뒤에 g 를 붙이지 않으면, 맨 처음의 "맹구"만 "대추"로 치환되어
# 안녕하세요, 대추씨! 맹구씨! 맹구씨! 맹구씨!
# 이렇게 됨.



▶▶ Perl 펄] 정규식 옵션 m s 의미 사용법, Regex 문자열 검색 치환



2 Comments:
At 2:34 PM, Anonymous Anonymous said...

잘 배우고 감사합니다. 감사합니다 :)

 
At 8:57 AM, Blogger mwultong said...

도움이 되셨다니 저도 기쁩니다

^_^)

 

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top