포스팅 목차
o RXPARSE
문자열에서 패턴이 일치하는 첫 번째 위치를 반환한다.
Category: | 문자열 비교 |
문 법
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'와 일치한다. |
관련 함수
함수명 | 함수내용 |
CALL PRXCHANGE | 지정한 패턴과 일치하는 문자열을 검색하여 검색된 부분을 변경하기 원하는 대체 문자열로 변경 작업을 수행한다. |
CALL PRXFREE | 메모리에 할당된 Perl regular 표현식을 초기화 한다. 일반적으로 데이터 스텝이 종료되면 리소스가 초기화 된다. |
CALL PRXSUBSTR | 패턴이 일치하는 문자열의 위치와 length를 반환한다. |
CALL RXCHANGE | 패턴이 일치하는 한 개 또는 다수의 문자열을 변환한다. |
CALL RXFREE | 다른 Regular 표현(RX)함수나 CALL 루틴에 의해 할당된 메모리를 초기화한다. |
CALL RXSUBSTR | 패턴이 일치하는 문자열의 위치,length,점수를 확인한다. |
PRXMATCH | 패턴 일치여부를 검색하고, 패턴이 발견된 첫 번째 위치를 반환한다. |
PRXPARSE | Perl 정규식 함수에 의해 이용될 Perl 정규식 표현을 정의 한다. |
RXMATCH | 문자열에서 패턴이 일치하는 첫 번째 위치를 반환한다. |
RXPARSE | 문자열에서 패턴이 일치하는 첫 번째 위치를 반환한다. |
예 제
예 제 1 :
to에 따라서 ;(semicolon)를 찾아서 Blank로 대체한다.
SAS Statements |
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;
Results |
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 |
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;
Results |
string
abcxyzpq
xyyzxyZx
x2z..X7z
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 함수(SAS Function) 리스트 링크 |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 366. SCAN (0) | 2021.10.10 |
---|---|
【SAS 함수】 365. SAVING (0) | 2021.10.10 |
【SAS 함수】 363. RXMATCH (0) | 2021.10.10 |
【SAS 함수】 362. ROUNDZ (0) | 2021.10.10 |
【SAS 함수】 361. ROUNDE (0) | 2021.10.10 |
댓글