비교연산자 중에 CP(패턴)에서 #을 언제 어떤식으로 사용하는지가 궁금합니다.
if 'ksxabdcoomh' cp '*k++a*c++m+'.
+는 임의의 문자,숫자 Length 1을 의미하니 위 조건은 참이 되겠죠
하지만 #은 어떻게 사용하는지 감이 잘 안잡히네요.
아래 내용은 헬프에서 #의 의미를 기술해 놓은 부분입니다.
You can select characters in operand2 for a direct comparison by adding the escape symbol "#" before the required characters
질문에 대한 답변이 방향이 틀려서 다시 답변합니다.
# 문자는 해당 칸의 값을 제외하고 비교 하는 패턴 기호(escape character)입니다. 특이점은 #문자 다음에 대/소문자 등 반드시 정확한 값이 와야 한다는 것입니다.
다음 예제에서
REPLACE '2' IN L_2 WITH '#'.
구문을
REPLACE '2' IN L_2 WITH '*'. 로 변경해보면서 테스트해보면 의미를 알수 있을거 같습니다.
REPORT Z_STRING .
data l_1(20) type c.
data l_2(20) type c.
l_1 = 'ABCDE'.
L_2 = 'AB2cDE'.
REPLACE '2' IN L_2 WITH '#'.
IF L_1 CP L_2.
WRITE 'ok'.
else.
WRITE 'nonok'.
ENDIF.