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

 
Previous Post 한국 10대 20대 남자 여자 평균 신장(키) 통계; Korean Stature19단표, 십구단표 만들기, Excel 엑셀 VBA 소스 코드; 19x19 Table구구단표 만들기, Excel 엑셀 VBA 소스 코드; 9x9 Multiplication T...Print Perl Array : 펄 배열 출력 방법, 함수Perl/펄] 퍼센트 기호(%) 의미, printf 함수로 백분율 기호 출력 방법; Pri...매스매티카 비프음, 삑삑 비프 소리 끄기; Mathematica v5 Beep OFFExcel/엑셀 VBA] 제곱 기호, 함수 거듭제곱(세제곱,네제곱), 몇 승 구하기 방법;...VRay, 멘탈레이(mental ray) 렌더링 이미지 갤러리(Image Gallery)브라질 렌더러, Brazil r/s 홈페이지, 이미지 갤러리(Image Gallery) 주...VRay 인스톨 방법, V-Ray(브이 레이) 렌더러 맥스에 설치 법; Install

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

Tuesday, March 13, 2007

정규식 맨 앞부분의 ms는 옵션이 아니라 연산자(operator)입니다. 옵션은 정규식의 맨 끝에 붙는 g나 i 같은 것입니다.

펄 정규식에서는 // 이런 슬래쉬 기호 두 개 사이에다 정규식을 기술합니다. 문자열 찾기인데 이것은 m// 과 동일한 것입니다. m// 을 간단히 줄여서 그냥 // 라고 하는 것입니다.


m// 또는 // 는 "찾기"에 해당하고
s/// 는 "바꾸기(치환)"에 해당합니다.


그런데 가끔 m// 이렇게 m을 명시적으로 사용해야 할 경우가 있습니다.

정규식에서 // 이런 슬래시 기호를 Delimiter(딜리미터; 구분 기호) 라고 하는데, 이 Delimiter 를 다른 기호로 바꾸어야 할 경우입니다.

만약 문자열 자체에 슬래시 기호가 많이 포함되어 있다면, 그 슬래시 기호 앞에 일일이 백슬래쉬(\)를 붙여 이스케이프해주는 것보다는, Delimiter 를 아예 다른 기호로 바꾸는 것이 편리할 것입니다.

Delimiter 를 다른 기호로 바꿀 때에는 정규식에서 m 을 생략할 수 없습니다. 다음 예제와 같습니다.

m 연산자 사용 예제


#!/usr/bin/perl
use strict; use warnings;

  my $s = "철수는 중국집에서 자장면을 시켰습니다.";


  # 패턴 매치 연산자인 m 을 생략한 일반적인 경우
  if ($s =~ /자장면/) {
    print "자장면이라는 문자열을 찾았음\n";
  }

  # m 을 붙인 경우
  if ($s =~ m/철수/) {
    print "철수라는 문자열을 찾았음\n";
  }


  # m 을 붙이고, 정규식 구분자를 캐럿(^) 기호로 변경한 경우
  if ($s =~ m^철수^) {
    print "철수라는 문자열을 찾았음\n";
  }


m^철수^ 에서
^철수^ 이렇게 m을 생략하면

syntax error at D:\Z\example.pl line 19, near "=~ ^"
Unrecognized character \xC3 at D:\Z\example.pl line 19.

이런 에러가 납니다.


s 연산자의 사용법은 여기에 있습니다: ▶▶ [Perl 정규식] 문자열 치환(바꾸기)/순서 변경/삭제 - s/// 치환 연산자(Substitution Operator)



0 Comments:

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