VB.NET 2008/VB - 문자열

문자열 - Like 연산자를 사용하여 패턴에 대해 문자열 비교

본클라쓰 2011. 4. 8. 09:28

 

문자열 데이터와 패턴을 만족하는지 확인하려면 Like 연산자를 사용한다.

 

Like 연산자는 왼쪽에 문자열을 두고 오른쪽에 검색에 사용할 문자열 패턴을 지정한다. 문자열과 패턴을 만족하는 여부를 Boolean 값으로 반환한다. 패턴을 만족하면 true, 만족하지 않으면 false를 반환한다.

 

Dim str As String = "ABCD"

Dim match As Boolean = str Like "*[DFG]"

 

 

위 예제에서 패턴은 앞에 0개부터 다수의 문자열이 있고 끝에 D,F,G 중 하나의 문자열이 있다면 true를 반환하는 비교 예제이다. 결과는 true를 반환한다.

 

패턴에 사용할 수 있는 옵션은 다음과 같다.

 

- ? : 임의의 단일 문자

- * : 0개 이상의 문장

- # : 임의의 단일 숫자(0~9)

- [charlist] : 임의의 단일 문자

- [!charlist] : char list 에 해당하지 않는 단일 문자

 

 

하나 이상의 문자를 대괄호([])로 묶은 문자 그룹(charlist)은 문자열에 있는 임의의 단일 문자와 일치시키는 데 사용될 수 있으며, 숫자뿐만 아니라 거의 모든 문자 코드를 포함할 수 있다. charlist의 시작 부분에 있는 느낌표(!)는 charlist에 있는 문자를 제외한 문자가 문자열에 있으면 해당 문자를 찾는다. 대괼호 외부에 느낌표를 사용하면 느낌표 자체를 찾는다.

 

왼쪽 대괄호([), 물음표(?), 숫자표시(#), 별표(*) 등과 같은 특수 문자와 일치시키려면 해당 문자를 대괄호로 묶는다. 그룹 내에 오른쪽 대괄호(])를 사용하여 자신과 일치하는 문자를 찾을 수는 없지만 그룹 외부에서는 개별 문자로 사용할 수 있다.

 

범위의 상한과 하한을 구분하는 하이픈(-)을 사용하여 charlist에서 문자의 범위를 지정할 수 있다. 예를 들어, 문자열의 해당 문자 위치에 A에서 Z사이의 임의 문자가 있으면 [A-Z]를 사용하여 찾고 해당 문자 위치에 H에서 L 사이를 벗어나는 임의 문자가 있으면 [!H-L]를 사용하여 찾는다.

 

문자의 범위를 지정하면 문자는 오름차순(A-Z)으로 표시되어야 한다. 따라서 [A-Z]는 유효한 패턴이지만 [Z-A]는 유효하지 않다.

 

동일한 문자 위치에 대해 여러 범위를 지정하려면 구분 기호 없이 대괄호 내에 추가한다. 예를 들어 문자열의 해당 문자 위치에 A에서 C 사이 또는 X에서 Z 사이의 임의 문자가 있으면 [A-CX-Z]를 사용하여 찾는다.

 

하이픈(-) 자체를 찾으려면 하이픈을 charlist의 시작 부분이나 끝 부분에 사용한다. 하이픈을 다른 위치에서 사용하면 하이픈 양쪽에 있는 문자의 범위를 나타낸다.