like 연산자

like 연산자를 사용하여 문자열과 정규식을 비교할 수 있습니다. like와 함께 사용할 수 있는 정규식은 와일드카드 문자와 이스케이프 문자를 포함합니다. like 연산자는 SQL의 LIKE 키워드와 비슷합니다. 정규식에 대한 자세한 정보는 matches 연산자의 내용을 참조하십시오. 연산자는 왼쪽에서 오른쪽으로 문자를 차례로 비교하고 다음 조건 중 하나가 충족되면 종료됩니다.
  • 소스 문자열의 문자가 정규식에서 위치가 일치하지 않습니다(비교가 false임).
  • 하나의 문자열이 끝나지만 다른 문자열이 끝나지 않습니다(비교가 false임).
  • 두 문자열 모두 끝납니다(비교가 true임).

구문

like 연산자의 구문 다이어그램
string
정규식과 비교할 STRING 변수입니다.
regEx
string을 비교할 정규식입니다. 정규식은 STRING과 지정 호환 가능한 변수 또는 리터럴입니다(DBCHAR 제외). (EGL은 2바이트 와일드카드 문자를 인식할 수 없습니다.) 자세한 정보는 이 주제의 "정규식 규칙"을 참조하십시오.

정규식 규칙

like 연산자가 있는 정규식에 다음 특수 문자를 포함할 수 있습니다.
%
소스 문자열에서 0개 이상의 문자를 일치시키는 와일드카드 기능을 합니다.
_(밑줄)
소스 문자열에서 하나의 문자를 일치시키는 와일드카드 기능을 합니다.
\(백슬래시)
소스 문자열에서 다음에 나오는 문자를 하나의 문자와 비교함을 표시합니다. 백슬래시(\)는 일반적인 처리에서 이스케이프를 일으키므로 이를 이스케이프 문자라고 합니다. 이스케이프 문자는 소스 문자열의 문자와 비교되지 않습니다. 이스케이프 문자는 보통 뒤에 백분율 부호(%), 밑줄(_) 또는 다른 백슬래시가 표시됩니다.
백슬래시를 이스케이프 문자로 사용하는 경우(기본 동작) EGL이 동일한 이스케이프 문자를 사용하여 텍스트 표현식에 큰따옴표를 포함할 수 있도록 하므로 문제가 발생합니다. 정규식의 컨텍스트에서, 런타임 시 사용 가능한 텍스트는 초기 백슬래시가 없는 텍스트이므로 두 개의 백슬래시를 지정해야 합니다. 이 문제가 발생하지 않게 하려면 이 주제의 "예제"에 표시된 대로 escape 키워드를 사용하여 다른 문자를 이스케이프 문자로 지정하십시오. 큰따옴표(")를 이스케이프 문자로 사용할 수 없습니다.

정규식의 기타 문자는 소스 문자열에서 하나의 문자와 비교되는 리터럴입니다.

예제

다음 예제에서는 정규식에서 와일드카드를 사용합니다.
myVar01 = "abcdef";

// evaluates as TRUE 
if (myVar01 like "a_c%")
   ;
end
다음 예제는 이스케이프 문자의 사용을 보여줍니다. 이중 백슬래시 사용에 유의하십시오.
myVar01 = "ab%def";

// evaluates as true 
if (myVar01 like "ab\\%def")
   ;
end 
다음 예제에서는 escape 키워드를 사용하여 더하기 부호를 정규식의 이스케이프 문자로 만듭니다.
myVar01 = "ab%def";

// evaluates as true
if (myVar01 like "ab+%def" escape "+")
   ;
end
like 연산자는 두 피연산자에 있는 후미 공백을 무시합니다.
// evaluates as true
if ("hello " like "hello      ")
   ;
end