문자열을 패턴과 비교합니다.
중요합니다
연산자는 Like
현재 .NET Core 및 .NET Standard 프로젝트에서 지원되지 않습니다.
문법
result = string Like pattern
부분
result
필수 사항입니다. 모든 Boolean
변수입니다. 결과는 해당 값이 Boolean
충족되는지 여부를 string
나타내는 값입니다 pattern
.
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]
문자 위치에 범위 내의 문자가 포함되어 있으면 일치가 발생하며[!H–L]
, 해당 문자 위치에 string
범위Z
A
외부H
L
의 문자가 포함된 경우 일치가 발생합니다.
문자 범위를 지정하는 경우 오름차순으로 표시되어야 합니다. 즉, 가장 낮은 순서에서 가장 높은 순서로 표시되어야 합니다.
[A–Z]
따라서 유효한 패턴이지만 [Z–A]
그렇지 않습니다.
여러 문자 범위
동일한 문자 위치에 대해 여러 범위를 지정하려면 구분 기호 없이 동일한 대괄호 안에 배치합니다. 예를 들어 해당 [A–CX–Z]
문자 위치에 string
범위 또는 범위 X
A
C
내Z
의 문자가 포함된 경우 일치하는 결과가 발생합니다.
하이픈 사용
하이픈(–
)은 시작 부분(느낌표 뒤, 있는 경우) 또는 charlist
끝에 표시하여 자체와 일치시킬 수 있습니다. 다른 위치에서 하이픈은 하이픈의 양쪽에 있는 문자로 구분된 문자 범위를 식별합니다.
시퀀스 정렬
지정된 범위의 의미는 코드가 실행 중인 시스템의 로캘 설정에 따라 Option Compare
결정되는 런타임 시 문자 순서에 따라 달라집니다. 와 함께 Option Compare Binary
범위 [A–E]
는 일치 A
, B
, C
, D
및 E
. With Option Compare Text
, [A–E]
matchesA
, a
, , à
À
, B
, b
, C
, c
, D
d
, E
및 e
. 범위가 일치하지 Ê
ê
않거나 악센트가 있는 문자가 정렬 순서에서 중심이 없는 문자 뒤 정렬되기 때문입니다.
Digraph 문자
일부 언어에는 두 개의 개별 문자를 나타내는 알파벳 문자가 있습니다. 예를 들어 여러 언어는 문자를 사용하여 문자를 æ
a
나타내고 e
함께 표시할 때 사용합니다. 연산자는 Like
단일 digraph 문자와 두 개의 개별 문자가 동일하다는 것을 인식합니다.
시스템 로캘 설정에서 digraph 문자를 사용하는 언어를 지정하는 경우 단일 digraph 문자가 다른 문자열에 있는 동일한 두 문자 시퀀스 중 하나 pattern
또는 string
일치합니다. 마찬가지로, 대괄호로 묶인 다이 그래프 문자 pattern
(그 자체로 목록 또는 범위)는 해당하는 두 문자 시퀀스( string
.)와 일치합니다.
오버로딩
연산자는 Like
오버로드될 수 있습니다. 즉, 피연산자에 해당 클래스 또는 구조체의 형식이 있는 경우 클래스 또는 구조체가 해당 동작을 다시 정의할 수 있습니다. 코드에서 이러한 클래스 또는 구조체에서 이 연산자를 사용하는 경우 다시 정의된 동작을 이해해야 합니다. 자세한 내용은 운영자 프로시저를 참조하세요.
예시
이 예제에서는 연산자를 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