Like 연산자(Visual Basic)
문자열을 패턴과 비교합니다.
Important
Like
연산자는 현재 .NET Core 및 .NET Standard 프로젝트에서 지원되지 않습니다.
구문
result = string Like pattern
부분
result
필수입니다. 모든 Boolean
변수입니다. 결과는 string
가 pattern
을 충족하는지 여부를 나타내는 Boolean
값입니다.
string
필수입니다. 임의의 String
식입니다.
pattern
필수입니다. "설명"에 설명된 패턴 일치 규칙을 준수하는 모든 String
식입니다.
설명
string
의 값이 pattern
, result
, True
의 포함된 패턴을 충족하는 경우. 문자열이 패턴을 충족하지 않으면 result
은 False
입니다. string
및 pattern
모두 빈 문자열이면 결과는 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*"
참고 항목
.NET