포스팅 목차
o PRXCHANGE
지정한 패턴과 일치하는 경우 변경 작업을 수행한다.
Category: | 문자열 비교 함수(문자열 매칭, Character String Matching) |
문 법
PRXCHANGE(perl-regular-expression | regular-expression-id, times, source) |
Arguments
perl-regular-expression
는 perl regular 지정.
참 고
검색과 대체작업을 위해서는 정규식 표현에서 대체 정규식 표현 "s"가 필요하다.
s/pattern to find/text to substitute/ : 지정한 패턴과 일치하는 부분을 검색하여 사용자가 지정한 문자열로 변경한다.
* times : 문자열을 검색할 횟수. -1을 지정시 Source의 끝에 도달할 때 까지 일치하는 패턴을 교체한다.
SAS regular 형식 은 RX로 시작하고, Perl regular형식은 PRX로 시작한다. 좀 더 상세한 사항을 알고 싶으신 분은 PERL언어에 관하여 찾아보시기를 바랍니다.
* PERL : 자료를 추출하고 그에 의거한 보고서를 작성하는데 사용하는 프로그래밍언어 가운데 하나이다.
관련 함수
함수명 | 함수내용 |
CALL PRXCHANGE | 지정한 패턴과 일치하는 문자열을 검색하여 검색된 부분을 변경하기 원하는 대체 문자열로 변경 작업을 수행한다. |
CALL PRXDEBUG | PERL 정규식이 컴파일 되는 과정과 패턴이 문자값과 일치 될 때 반환되는 값에 대한 정보를 제공한다. |
CALL PRXFREE | 메모리에 할당된 Perl regular 표현식을 초기화 한다. 일반적으로 데이터 스텝이 종료되면 리소스가 초기화 된다. |
CALL PRXNEXT | 문자열에서 지정한 패턴과 일치하는 패턴 검색 작업을 반복적으로 수행하여서 패턴과 일치하는 하위 문자열의 위치와 length를 반환한다. |
CALL PRXPOSN | capture 버퍼의 시작 위치와 length를 반환한다. |
CALL PRXSUBSTR | 패턴이 일치하는 문자열의 위치와 length를 반환한다. |
CALL SCAN | 문자열에서 주어진 단어의 위치와 length 반환한다. |
CALL SCANQ | Quotation Mark에 의해 구분된 구분자는 무시하고, 문자에서 주어진 단어의 위치와 length 반환한다. |
COUNTW | 문자열에서 지정한 단어의 갯수를 카운트한다. |
FIND | 지정한 문자열 안에 지정 문자 위치를 반환한다. |
FINDC | 지정한 문자열 안에 지정 문자의 존재성에 대한 결과 반환한다. |
FINDW | 문자열에서 지정한 단어의 문자 위치를 반환하거나 문자열에 존재하는 단어의 갯수를 반환한다. |
INDEX | 문자열에서 해당 문자열 단위로 위치를 검색하여 첫 번째 위치를 반환한다. |
INDEXC | 문자열에서 해당 문자 단위로 위치를 검색하여 첫 번째 위치를 반환한다. |
INDEXW | 문자열에서 해당단어 단위로 위치 검색하여서 첫 번째 단어 위치를 반환한다. excerpt는 단어 앞뒤의 공백은 제거후 검색한다. |
PRXCHANGE | 지정한 패턴과 일치하는 경우 변경 작업을 수행한다. |
PRXMATCH | 패턴 일치여부를 검색하고, 패턴이 발견된 첫 번째 위치를 반환한다. |
PRXPAREN | 패턴이 일치하는 마지막 캡쳐 버퍼의 값을 반환한다. |
PRXPARSE | Perl 정규식 함수에 의해 이용될 Perl 정규식 표현을 정의 한다. |
PRXPOSN | capture 버퍼에 할당된 값을 반환한다. 캡쳐 버퍼는 prxparse를 통해 패턴 선언시 괄호를 지정하여 나눌수 있다. |
SCAN | 문자열에서 지정한 n번째 단어를 추출한다. |
SCANQ | quotation marks로 둘러쌓인 경우 구분자를 무시하고, 문자열로부터 n번째 단어를 추출한다. |
VERIFY |
지정한 문자열과 대상 문자열을 비교하여 지정한 문자열이 존재하지 않는 문자의 첫 번째 위치를 반환한다. |
예 제
성과 이름 위치 변경한다. (Ww+)는 name변수에서 ‘,’앞의 부분을 버퍼1에 캡쳐하고, (\w+)는 쉼표 뒷부분을 버퍼2에 캡쳐하라. $2 $1은 캡쳐2를 먼저 배치하고 한칸 뒤에 캡쳐1의 값을 배치하여 name변수에 삽입하라.
SAS Statements |
data PRXCHANGE1;
input name & $32.;
datalines;
Jones, Fred
Kavich, Kate
Turley, Ron
Dulix, Yolanda
;
data names;
set PRXCHANGE1;
name = prxchange('s/(\w+), (\w+)/$2 $1/', -1, name);
run;
Results |
name
Fred Jones
Kate Kavich
Ron Turley
Yolanda Dulix
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 331. PRXPAREN (0) | 2021.10.09 |
---|---|
【SAS 함수】 330. PRXMATCH (0) | 2021.10.09 |
【SAS 함수】 328. PROPCASE (0) | 2021.10.08 |
【SAS 함수】 327. PROBT (0) | 2021.10.08 |
【SAS 함수】 326. PROBNORM (0) | 2021.10.08 |
댓글