포스팅 목차
63. CALL RXCHANGE
패턴이 일치하는 한 개 또는 다수의 문자열을 변환한다.
Category: | 문자열 비교 함수(문자열 매칭, Character String Matching) |
MAIN |
문 법
CALL RXCHANGE (rx,times,old-string<,new-string>); |
Arguments
- rx
- 는 RXPARSE함수에 의해 반환되는 인식자를 지정.
- times
- 는 변경된 최대 숫자.
- old-string
- new-string
참 고
SAS regular 형식 은 RX로 시작하고, Perl regular형식은 PRX로 시작한다.
좀 더 상세한 사항을 알고 싶으신 분은 PERL언어에 관하여 찾아보시기를 바랍니다.
관련 함수
함수명 | 함수내용 |
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 :
각각의 대문자 앞에 blank삽입하여 출력하자.
SAS Statements |
data Call_Rxchange1;
input x :$15.;
put x= $char15.; retain rx;
if _n_=1 then rx=rxparse("<$u> TO ' ' =1");
call rxchange(rx,5,x);
put rx=; put x= $char15.;
datalines;
ThisIsATest
;
Results |
x=ThisIsATest
rx=1
x=This Is A Test
예 제 2 :
문자열을 검색하여서 ‘bad cat’단어를 '******'로 변경하자.
rxparse 함수에서 A TO B 의 형태는 A를 B로 변경의 의미이다.
SAS Statements |
data Call_Rxchange2;
infile datalines truncover;
input x $char50.;
datalines;
this is a bad story about a bad cat
this is a cat story about a bad cat
this is a bad story about a cat
;
data new;
set Call_Rxchange2;
put x=;
length y $ 50;
rx = rxparse("'bad cat' to '******'");
call rxchange(rx,1,x,y);
put y= /;
run;
Results |
x=this is a bad story about a bad cat
y=this is a bad story about a ******
x=this is a cat story about a bad cat
y=this is a cat story about a ******
x=this is a bad story about a cat
y=this is a bad story about a cat
예 제 3 :
변환작업을 5번을 실행하여서 문자열에서 HTML Tag문을 제거하여 출력하자.
SAS Statements |
data Call_Rxchange3;
infile datalines truncover;
input test $char100.;
before=test;
rx = rxparse(" $<5> to '' ");
call rxchange(rx,5,test);
datalines;
<FONT SIZE=2 FACE="Courier New">Using RX functionality</FONT>
<P><FONT SIZE=2 FACE="Courier New">Thank-you so much</FONT>
;
run;
Results |
test
Using RX functionality Thank-you so much
before
<FONT SIZE=2 FACE="Courier New">Using RX functionality</FONT>
<P><FONT SIZE=2 FACE="Courier New">Thank-you so much</FONT>
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
[SAS 함수] 64. CALL RXFREE (0) | 2018.11.24 |
---|---|
【SAS 함수】 64. CALL RXFREE 함수 (0) | 2018.11.23 |
【SAS 함수】 62. CALL RANUNI 함수 (0) | 2018.11.22 |
【SAS 함수】 61. CALL RANTRI 함수 (0) | 2018.11.22 |
【SAS 함수】 60. CALL RANTBL 함수 (0) | 2018.11.22 |
댓글