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

364. RXPARSE



문자열에서 패턴이 일치하는 첫 번째 위치를 반환한다.
Category: 문자열 비교

문 법
인 수
예 제
함 수 비 교

문법

MAIN

rx=RXPARSE (pattern-expression)

Arguments

rx
는 RXPARSE 함수에 의해 반환되는 숫자값.


참고
 

PRXPARSE(PERL)함수와 유사하다. 자세한 사항은 도움말을 참조바랍니다.

매타캐릭터 설명

*

이전 패턴의 0개 이상 찾는다.

- cat*은 ‘cat','cats','catanddog'와 일치한다.

- c(at)*은 ‘c','cat','catatat'와 일치한다.

+

이전 패턴의 1개 이상 일치하는 것을 찾는다.

- \d+는 한 개 이상의 숫자와 일치한다.

?

정확하게 한 개 문자를 찾는다.

- r?n 은 ‘ron','run','ran'과 일치한다.

:

0개 이상 문자를 찾는다.

- a:b 는 “axb","ab"와 일치한다.

$d 또는 $D

숫자(0~9)를 찾는다.

- $d$d$d는 3자리 숫자와 일치한다.

$a 또는 $A

대소문자를 찾는다.

- $a$a는 “xx","ab”.“XX"와 일치한다.

^

패턴과 일치하지 않는 것을 찾는다.

- ^d는 “x","%"와 일치한다.(숫자가 아닌 문자)

$‘xyz'

따옴표 안의 문자중 하나를 찾는다.

- ca$'tr'는 ‘cat','car'와 일치한다.

$‘a-e'

a-e까지 문자와 일치한다.

- $‘a-e'$a+ 는 ’adam','edam','car'와 일치한다.

$‘a-eA-E'

a-e 또는 A-E 문자와 일치한다.

- $‘a-eA-E'$a+ 는 ’Adam','edam','B13'과 일치한다.

x|y

x 또는 y와 일치한다.

- c(a|o)t 는 ‘cat','cot'와 일치한다.

$w

공백문자와 일치한다.

- $d+$w+$d+ 는 “123   4”와 일치한다.

‘(’

( 와 일치한다.

- ‘(’$d$d$d')' 는 ‘(123)’과 일치한다.

‘)’

) 와 일치한다.

$u 또는 $U

대문자와 일치한다.

- $u$u$u 는 ‘ABC'와 일치한다.

$l 또는 $L

소문자와 일치한다.

- $l$l 는 ‘ab'와 일치한다.


예제
 

예 제 1 :

to에 따라서 ;(semicolon)를 찾아서 Blank로 대체한다.

SAS Statements Results

data support;

   input id name $ 6-35;

   datalines4;

3452 Ranklin, A.

9932 Patriot, L.;

3221 Ferraro, M.; Sandobol, S.

1228 Dietz, J.; Molina, K.;

;;;;

 

data support2 (drop=rx);

 set support;

     rx=rxparse("$';' to ' '");

     call rxchange(rx,999,name);

run;

 

 

 

 

 id    name

3452    Ranklin, A.

9932    Patriot, L.

3221    Ferraro, M.  Sandobol, S.

1228    Dietz, J.  Molina, K.

예 제 2 :

‘x z'의 형태를 찾아서 ‘ABC(?에 해당하는 문자)@#%’형태로 변경을 한다.

여기서 <>(angle bracket)은 tag sets으로 칭하고,

첫 번째 tag set은 To 뒤에서 =1에서 사용되고, 두 번째 tag set은 =2에서 사용되는 형태이다.

SAS Statements Results

data test;

     input string $;

datalines;

abcxyzpq

xyyzxyZx

x2z..X7z

;

 

data _null_;

 set;

     length to $20;

     if _n_=1 then rx=rxparse("` x < ? > 'z' to ABC =1 '@#%'");

     retain rx;

     drop rx;

     put string=;

 

     match=rxmatch(rx,string);

     put @3 match=;

 

     call rxsubstr(rx,string,position);

     put @3 position=;

 

     call rxsubstr(rx,string,position,length,score);

     put @3 position= Length= Score=;

 

     call rxchange(rx,999,string,to);

     put @3 to=;

 

     call rxchange(rx,999,string);

     put @3 'New ' string=;

run;

 

 

 

 

 

 

 

 

 

 

 

  string

 abcxyzpq

 xyyzxyZx

 x2z..X7z

 

함수비교

Functions:

063.CALL RXCHANGE

  064.CALL RXFREE
  363.RXMATCH
  065.CALL RXSUBSTR

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