포스팅 목차
165. FINDC
지정한 문자열 안에 지정 문자의 존재성에 대한 결과 반환한다.
Category: | 문 자 |
MAIN |
문 법
FINDC(string,characters<,modifiers><,startpos>) FINDC(string,characters<,startpos><,modifiers>) |
Arguments
- string
- 는 문자 상수, 변수 표현.
- modifiers(참조자)
변경자 | 설명 |
i | 조회시 대소문자를 별도로 구분하지 않는다. |
o | 처음 수행시 지정된 옵션이 고정되어서 다음 수행에서도 지정. |
t | 문자열의 뒷부분 공백 제거 |
v | 문자열에서 지정한 문자가 아닌 문자 검색 |
참 고
변경자 | 설명 |
0보다 큰 경우 | 지정한 시작 위치에서 오른쪽으로 검색을 한다. |
0 | 0의 값을 반환 |
0 보다 작은 경우 | 지정한 위치에서 왼쪽 방향으로 검색을 한다. |
관련 함수
함수명 | 함수내용 |
CALL SCAN | 문자열에서 주어진 단어의 위치와 length 반환한다. |
CALL SCANQ | Quotation Mark에 의해 구분된 구분자는 무시하고, 문자에서 주어진 단어의 위치와 length 반환한다. |
COUNTW | 문자열에서 지정한 단어의 갯수를 카운트한다. |
FIND | 지정한 문자열 안에 지정 문자 위치를 반환한다. |
FINDC | 지정한 문자열 안에 지정 문자의 존재성에 대한 결과 반환한다. |
FINDW | 문자열에서 지정한 단어의 문자 위치를 반환하거나 문자열에 존재하는 단어의 갯수를 반환한다. |
INDEX | 문자열에서 해당 문자열 단위로 위치를 검색하여 첫 번째 위치를 반환한다. |
INDEXC | 문자열에서 해당 문자 단위로 위치를 검색하여 첫 번째 위치를 반환한다. |
INDEXW | 문자열에서 해당단어 단위로 위치 검색하여서 첫 번째 단어 위치를 반환한다. excerpt는 단어 앞뒤의 공백은 제거후 검색한다. |
SCAN | 문자열에서 지정한 n번째 단어를 추출한다. |
SCANQ | quotation marks로 둘러쌓인 경우 구분자를 무시하고, 문자열로부터 n번째 단어를 추출한다. |
VERIFY |
지정한 문자열과 대상 문자열을 비교하여 지정한 문자열이 존재하지 않는 문자의 첫 번째 위치를 반환한다. |
MAIN |
예 제
예 제 1 :
문자에서 h,i,Blank의 위치를 반환한다.
SAS Statements |
data _null_;
whereishi=0;
do until(whereishi=0);
whereishi=findc('Hi there, Ian!','hi ',whereishi+1);
if whereishi=0 then put "The End";
else do;
whatfound=substr('Hi there, Ian!',whereishi,1);
put whereishi= whatfound=;
end;
end;
run;
Results |
whereishi=2 whatfound=i
whereishi=3 whatfound=
whereishi=5 whatfound=h
whereishi=10 whatfound=
The End
예 제 2 :
I지정으로 대문자 구별 없이 h,i,H,I의 위치를 찾는다.
SAS Statements |
data _null_;
whereishi_i=0;
do until(whereishi_i=0);
variable1='Hi there, Ian!';
variable2='hi';
variable3='i';
whereishi_i=findc(variable1,variable2,variable3,whereishi_i+1);
if whereishi_i=0 then put "The End";
else do;
whatfound=substr(variable1,whereishi_i,1);
put whereishi_i= whatfound=;
end;
end;
run;
Results |
whereishi_i=1 whatfound=H
whereishi_i=2 whatfound=i
whereishi_i=5 whatfound=h
whereishi_i=11 whatfound=I
The End
예 제 3 :
t옵션에 의해 문자열 인수와 문자 인수의 tailing blank를 제거한후 h와 i를 검색한다.
SAS Statements |
data back;
whereishi_t=0;
do until(whereishi_t=0);
expression1='Hi there, '||'Ian!';
put expression1=;
* hi반환후 공백 결합 즉 'hi '이 반환;
expression2=kscan('bye or hi',3)||' ';
put expression2=;
expression3=trim('t ');
whereishi_t=findc(expression1,expression2,expression3,whereishi_t+1);
if whereishi_t=0 then put "The End";
else do;
whatfound=substr(expression1,whereishi_t,1);
put whereishi_t= whatfound=;
end;
end;
run;
Results |
whereishi_i=1 whatfound=H
whereishi_i=2 whatfound=i
whereishi_i=5 whatfound=h
whereishi_i=11 whatfound=I
The End
예 제 4 :
대문자를 고려하지 않고 h,i,H,I를 제외한 모든 문자 출력한다.
SAS Statements |
data _null_;
whereishi_iv=0;
do until(whereishi_iv=0);
xyz='Hi there, Ian!';
whereishi_iv=findc(xyz,'hi',whereishi_iv+1,'iv');
if whereishi_iv=0 then put "The End";
else do;
whatfound=substr(xyz,whereishi_iv,1);
put whereishi_iv= whatfound=;
end;
end;
run;
Results |
whereishi_iv=3 whatfound=
whereishi_iv=4 whatfound=t
whereishi_iv=6 whatfound=e
whereishi_iv=7 whatfound=r
whereishi_iv=8 whatfound=e
whereishi_iv=9 whatfound=,
whereishi_iv=10 whatfound=
whereishi_iv=12 whatfound=a
whereishi_iv=13 whatfound=n
whereishi_iv=14 whatfound=!
The End
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 함수(SAS Function) 리스트 링크 |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 167. FINV (0) | 2021.09.29 |
---|---|
[SAS 함수] 166. FINFO (0) | 2019.01.24 |
【SAS 함수】 164. FIND (0) | 2019.01.24 |
【SAS 함수】 163. FILEREF (0) | 2019.01.24 |
[SAS 함수] 162. FILENAME (0) | 2019.01.24 |
댓글