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
PRXPOSN
Go to previous page
Previous
Go to next page
Next
처음메뉴로

333. PRXPOSN



capture 버퍼에 할당된 값을 반환한다.

캡쳐 버퍼는 prxparse를 통해 패턴 선언시 괄호를 지정하여 나눌수 있다.

Category: 문자열 비교

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

문법

MAIN

PRXPOSN (regular-expression-id, capture-buffer, source)

Arguments

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


참고

펄 쿡북(한빛미디어)을 참조하세요.

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

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

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


예제
 

예 제 1 :

prxparse함수를 통하여 , 로 나누어 앞부분과 뒷부분에 해당되는 값이 캡쳐버퍼 1과 2에 각각 할당되게 된다.

prxposn함수를 통하여서 캡쳐버퍼 1과 2의 값을 각각 가져오게 된다.

SAS Statements Results

data ReversedNames;

     input name & $32.;

datalines;

Jones, Fred

Kavich, Kate

Turley, Ron

Dulix, Yolanda

;

 

data FirstLastNames;

     length first last $ 16;

     keep first last;

     retain re;

     if _N_ = 1 then re = prxparse('/(\w+), (\w+)/');

 set ReversedNames;

     if prxmatch(re, name) then do;

        * 첫번째 규칙;

        last  = prxposn(re, 1, name);

        first = prxposn(re, 2, name);

     end;

run;

 

 

 

 

 

 

 first     last

 

 Fred       Jones

 Kate       Kavich

 Ron        Turley

 Yolanda    Dulix

예 제 2 :

캡쳐버퍼 1,2,3에 각각 할당된 값을 찾아온다.

'/(\S+)\s+([^\s]+\s+)?(\S+)/o' : (비공백문자) blank ((비공백문자가 한 개이상)Blank) (비공백문자한개이상) 의

                                   형태를 가지는 것을 찾게 된다.

여기서, 캡쳐버퍼1은 비공백문자가 한 개 이상

캡쳐버퍼2는 공백문자아닌 문자가 한 개 이상

캡쳐버퍼3은 비공백문자가 한 개 이상

으로 이루어진다. (/o는 패턴을 한번만 컴파일 한다.)

SAS Statements Results

data old;

   input name $60.;

   datalines;

Judith S Reaveley

Ralph F. Morgan

Jess Ennis

Carol Echols

Kelly Hansen Huff

Judith

Nick

Jones

;

 

data new;

     length first middle last $ 40;

     keep first middle last;

     re = prxparse('/(\S+)\s+([^\s]+\s+)?(\S+)/o');

 set old;

     if prxmatch(re, name) then do;

        first  = prxposn(re, 1, name);

        middle = prxposn(re, 2, name);

        last   = prxposn(re, 3, name);

        output;

     end;

run;

 

 

 

 

 

 first   middle    last

 

 Judith    S         Reaveley

 Ralph     F.        Morgan

 Jess                Ennis

 Carol               Echols

 Kelly     Hansen    Huff

 


함수비교

Functions:

046.CALL PRXCHANGE

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

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