SAS FUNCTION
SAS 9.1.3
Go to Documentation Home
HOME
Go to Book List
FUN_home
Go to Table of Contents
연구회
Go to Index
자료실
Go to Master Index
SAS  9.1.3
Go to Feedback page
MAIL
CALL PRXSUBSTR
Go to previous page
Previous
Go to next page
Next
처음메뉴로

51. CALL PRXSUBSTR



패턴이 일치하는 문자열의 위치와 length를 반환한다.
Category: Character String Matching

문 법
인 수
참 고
예 제
함 수 비 교

문법

MAIN

CALL PRXSUBSTR (regular-expression-id, capture-buffer, start <, length>);

Arguments

regular-expression-id
는 PRXPARSE함수에 의해 반환되는 인식자를 지정.


참고

단, 메모리에 직접 쓰는 것은 상당히 조심할 필요있습니다.

SAS regular 형식 은 RX로 시작하고, Perl regular형식은 PRX로 시작한다.

좀 더 상세한 사항을 알고 싶으신 분은 PERL언어에 관하여 찾아보시기를 바랍니다.

* PERL : 자료를 추출하고 그에 의거한 보고서를 작성하는데 사용하는 프로그래밍언어 가운데 하나이다.

예제

MAIN

 

예 제 1 :

‘Hello world!'에서 ‘world’단어의 위치와 length를 찾아서 반환한다.

SAS Statements Results
data _null_;
     patternID = prxparse('/world/');
     call prxsubstr(patternID, 'Hello world!', position, length);
     put position= length=;
run;

position=7

 length=5

 

예 제 2 :

i옵션을 주어서 insensitive search(대소문을 구분하지 않고 검색) 방식으로

ave ,avenue,dr,drive,rd,road 가 속한 문자열의 위치와 length를 찾아서 분리한다.

SAS Statements Results
data _null_;
     if _N_ = 1 then do;
        retain ExpressionID;
        pattern = "/ave|avenue|dr|drive|rd|road/i";
        ExpressionID = prxparse(pattern);
     end;

     input street $80.;
     call prxsubstr(ExpressionID, street, position, length);
     if position ^= 0 then do;
        match = substr(street, position, length);
        put match:$QUOTE. "found in " street:$QUOTE.;
     end;
datalines;
153 First Street
6789 64th Ave
4 Moritz Road
7493 Wilkes Place
dr
;
run;
 

 

"Ave" found in "6789 64th Ave"


"Road" found in "4 Moritz Road"


"dr" found in "dr"    


함수비교

Functions:

046.CALL PRXCHANGE

  047.CALL PRXDEBUG
  048.CALL PRXFREE
  049.CALL PRXNEXT
  050.CALL PRXPOSN
  329.PRXCHANGE
  330.PRXMATCH
  331.PRXPAREN
  332.PRXPARSE
  333.PRXPOSN

2006년 백승민 제작하였답니다. 
( http://cafe.daum.net/statsas )