matches 연산자

matches 연산자를 사용하여 문자열과 정규식을 비교할 수 있습니다. like 연산자 사용은 UNIX 또는 Perl에서 정규식을 사용하는 것과 비슷합니다. 단순한 정규식은 like 연산자의 내용을 참조하십시오.

matches 연산자는 왼쪽에서 오른쪽으로 문자를 차례로 비교하고 다음 조건 중 하나가 충족되면 종료됩니다.
  • 소스 문자열의 문자가 정규식에서 위치가 일치하지 않습니다(비교가 false임).
  • 하나의 문자열이 끝나지만 다른 문자열이 끝나지 않습니다(비교가 false임).
  • 두 문자열 모두 끝납니다(비교가 true임).

구문

matches
연산자의 구문 다이어그램
string
정규식과 비교할 STRING 변수입니다.
regEx
string을 비교할 정규식입니다. 정규식은 CHAR 또는 MBCHAR 리터럴이나 변수, 또는 UNICODE 변수입니다. 자세한 정보는 이 주제의 "정규식 규칙"을 참조하십시오.

정규식 규칙

정규식에 다음 특수 문자를 포함할 수 있습니다.
*
문자열 표현식에서 0개 이상의 문자를 일치시키는 와일드카드 기능을 합니다.
?
문자열 표현식에서 하나의 문자를 일치시키는 와일드카드 기능을 합니다.
[ ]
두 개의 대괄호 사이에 있는 문자 중 하나가 문자열 표현식에서 다음에 나오는 문자의 일치로 올바릅니다. 예를 들어, 정규식의 다음 컴포넌트는 a, b 또는 c가 일치로 올바름을 표시합니다.
  [abc]
-
대괄호 구분 기호에서 범위를 작성하며 범위 내의 문자는 문자열 표현식에서 다음에 나오는 문자의 일치로 올바릅니다. 예를 들어, 정규식의 다음 컴포넌트는 a, b 또는 c가 일치로 올바름을 표시합니다.
  [a-c]

하이픈(-)은 대괄호 구분 기호 외부에서는 특수한 의미가 없습니다.

^
캐럿은 대괄호 구분 기호의 의미를 되돌립니다. 구분된 문자 이외의 모든 문자는 문자열 표현식에서 다음에 나오는 문자의 일치로 올바릅니다. 예를 들어, 정규식의 다음 컴포넌트는 a, b 또는 c 이외의 모든 문자가 일치로 올바름을 표시합니다.
  [^abc]

캐럿은 대괄호에서 첫 번째 위치가 아니면 특수한 의미가 없습니다.

\
그 다음 문자를 문자열 표현식의 단일 문자와 비교함을 표시합니다. 백슬래시(\)는 일반적인 처리에서 이스케이프를 일으키므로 이를 이스케이프 문자라고 합니다. 이스케이프 문자는 문자열 표현식의 문자와 비교되지 않습니다. 이스케이프 문자는 일반적으로 별표(*) 또는 물음표(?)와 같이 이스케이프 문자가 없는 경우 정규식에서 의미를 갖는 문자 앞에 표시됩니다.
백슬래시를 이스케이프 문자로 사용하는 경우(기본 동작) EGL이 동일한 이스케이프 문자를 사용하여 텍스트 표현식에 큰따옴표를 포함할 수 있도록 하므로 문제가 발생합니다. 정규식의 컨텍스트에서, 런타임 시 사용 가능한 텍스트는 초기 백슬래시가 없는 텍스트이므로 두 개의 백슬래시를 지정해야 합니다. 이 문제가 발생하지 않게 하려면 이 주제의 "예제"에 표시된 대로 escape 키워드를 사용하여 다른 문자를 이스케이프 문자로 지정하십시오. 큰따옴표(")를 이스케이프 문자로 사용할 수 없습니다.

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

예제

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

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

// evaluates as TRUE
if (myVar01 matches "ab\\*[abcd][abcde][^a-e]")
   ;
end
다음 예제에서는 escape 키워드를 사용하여 더하기 부호를 정규식의 이스케이프 문자로 만듭니다.
myVar01 = "ab*def";

// the next logical expression evaluates to "true"
if (myVar01 matches "ab+*def" escape "+")
    ;
end