Like 연산자(Visual Basic)

문자열을 패턴과 비교합니다.

Important

Like 연산자는 현재 .NET Core 및 .NET Standard 프로젝트에서 지원되지 않습니다.

구문

result = string Like pattern  

부분

result
필수입니다. 모든 Boolean 변수입니다. 결과는 stringpattern을 충족하는지 여부를 나타내는 Boolean 값입니다.

string
필수입니다. 임의의 String 식입니다.

pattern
필수입니다. "설명"에 설명된 패턴 일치 규칙을 준수하는 모든 String 식입니다.

설명

string의 값이 pattern, result, True의 포함된 패턴을 충족하는 경우. 문자열이 패턴을 충족하지 않으면 resultFalse입니다. stringpattern 모두 빈 문자열이면 결과는 True입니다.

비교 메서드

Like 연산자의 동작은 Option Compare 문에 따라 달라집니다. 각 소스 파일에 대한 기본 문자열 비교 메서드는 Option Compare Binary입니다.

패턴 옵션

기본 제공 패턴 일치는 문자열 비교를 위한 다양한 도구를 제공합니다. 패턴 일치 기능을 사용하면 string에서 각 문자를 특정 문자, 와일드카드 문자, 문자 목록 또는 문자 범위와 일치시킬 수 있습니다. 다음 표에서는 pattern에서 허용되는 문자와 일치하는 항목을 보여 줍니다.

pattern의 문자 string의 항목과 일치
? 단일 문자
* 0개 이상의 문자
# 모든 한 자리(0-9)
[charlist] charlist의 단일 문자
[!charlist] charlist에 없는 모든 단일 문자

문자 목록

대괄호([ ])로 묶인 하나 이상의 문자(charlist)의 그룹은 string에서 모든 단일 문자와 일치하도록 사용할 수 있으며 숫자를 포함한 거의 모든 문자 코드를 포함할 수 있습니다.

charlist의 시작 부분에 느낌표(!)는 charlist의 문자를 제외한 모든 문자가 string에서 발견되면 일치한다는 의미입니다. 외부 대괄호를 사용하는 경우 느낌표 자체가 일치합니다.

특수 문자

특수 문자 왼쪽 대괄호([), 물음표(?), 숫자 기호(#), 별표(*)를 일치시키려면 대괄호로 묶습니다. 오른쪽 대괄호(])는 그룹 내에서 자체와 일치하도록 사용할 수 없지만 그룹 외부에서 개별 문자로 사용할 수 있습니다.

문자 시퀀스 []은 길이가 0인 문자열("")로 간주됩니다. 그러나 대괄호로 묶인 문자 목록에는 속할 수 없습니다. string 위치가 문자 그룹 중 하나 또는 문자가 전혀 없는지 확인하려는 경우 Like를 두 번 사용할 수 있습니다. 예제는 방법: 패턴에 대해 문자열 비교를 참조하세요.

문자 범위

하이픈()을 사용하여 범위의 하한과 상한을 구분하면 charlist 문자 범위를 지정할 수 있습니다. 예를 들어, [A–Z]string의 해당 문자 위치에 A~Z 범위 내의 문자가 포함되어 있으면 일치가 발생하고, [!H–L]는 해당 문자 위치에 H~L 범위를 벗어난 문자를 포함하는 경우 일치가 발생합니다.

문자 범위를 지정하는 경우 오름차순으로 표시되어야 합니다. 즉, 가장 낮은 순서에서 가장 높은 순서로 표시되어야 합니다. 따라서 [A–Z]은(는) 유효한 패턴이지만 [Z–A]은(는) 그렇지 않습니다.

여러 문자 범위

동일한 문자 위치에 대해 여러 범위를 지정하려면 구분 기호 없이 동일한 대괄호 안에 배치합니다. 예를 들어 [A–CX–Z]string에서 해당 문자 위치에 범위 A~C 또는 범위 X~Z 내에 있는 문자가 포함된 경우 일치가 발생합니다.

하이픈 사용

하이픈()은 느낌표(느낌표가 있는 경우) 또는 charlist 끝에 표시하여 자체와 일치시킬 수 있습니다. 다른 위치에서 하이픈은 하이픈의 양쪽에 있는 문자로 구분된 문자 범위를 식별합니다.

시퀀스 정렬

지정된 범위의 의미는 Option Compare 및 코드가 실행 중인 시스템의 로캘 설정에 의해 결정되는 런타임 시 문자 순서에 따라 달라집니다. Option Compare Binary과 함께, [A–E] 범위는 A, B, C, D, E와 일치합니다. Option Compare Text과 함께, [A–E]은(는) A, a, À, à, B, b, C, c, D, d, E, e와 일치합니다. 악센트가 있는 문자가 정렬 순서의 중심이 아닌 문자 뒤를 정렬하기 때문에 범위가 Ê 또는 ê와 일치하지 않습니다.

이중문자

일부 언어에는 두 개의 개별 문자를 나타내는 알파벳 문자가 있습니다. 예를 들어 여러 언어는 문자 æ을 사용하여 a 문자를 나타내고 함께 표시되면 e입니다. Like 연산자는 단일 이중문자와 두 개의 개별 문자가 동일하다는 것을 인식합니다.

시스템 로캘 설정에서 이중문자를 사용하는 언어를 지정하는 경우 pattern 또는 string 단일 이중문자가 다른 문자열의 동일한 두 문자 시퀀스와 일치합니다. 마찬가지로 괄호로 묶인 pattern의 이중문자는 (단독으로, 목록에서 또는 범위에서) string의 동등한 두 문자 시퀀스와 일치합니다.

오버로딩

Like 연산자는 오버로드될 수 있습니다. 즉, 피연산자가 해당 클래스 또는 구조체 형식을 가질 때 클래스 또는 구조체의 동작을 재정의할 수 있습니다. 코드에서 이러한 클래스나 구조에 대해 이 연산자를 사용하는 경우 재정의된 동작을 이해해야 합니다. 자세한 내용은 Operator Procedures을 참조하세요.

예시

이 예제에서는 Like 연산자를 사용하여 문자열을 다양한 패턴과 비교합니다. 결과는 각 문자열이 패턴을 충족하는지 여부를 나타내는 Boolean 변수로 이동합니다.

Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
'    and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
'    beginning, an "a" at the end, and any number of characters in 
'    between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
'    characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the 
'    set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
'    an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
'    followed by any character from the set "L" through "P", followed
'    by any single-digit number, and end with any character NOT in
'    the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
'    "B", followed by any single character, followed by a "T", and end
'    with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
'    a "B", followed by any single character, followed by a "T", and
'    end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"

참고 항목