天天看點

Like 運算符請參見

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。 https://blog.csdn.net/chinahuyong/article/details/2551503

Like 運算符

比較運算符 | InStr 函數 | Visual Basic 中的運算符優先級 | 運算符(按功能列出) | Option Compare 語句 | StrComp 函數 | 運算符

比較兩個字元串。

result = string Like pattern

各部分說明

result

必選項。任何 Boolean 變量。結果是 Boolean 值,它表示 string 是否比對 pattern。

string

必選項。任何 String 表達式。

pattern

必選項。任何符合“備注”中描述的模式比對約定的 String 表達式。

備注

如果 string 比對 pattern,則 result 為 True;如果不比對,則 result 為 False。如果 string 和 pattern 都是空字元串,則結果是 True。否則,如果 string 或 pattern 中有一個為空字元串,則結果為 False。

Like 運算符的行為取決于 Option Compare 語句。每個子產品的預設字元串比較方法是 Option Compare Binary。

内置的模式比對為字元串比較提供了一種多功能工具。模式比對功能允許您使用通配符、字元清單或字元範圍的任何組合來比對字元串。下表顯示 pattern 中允許的字元和這些字元的比對項:

pattern 中的字元 string 中的比對項

? 任何單個字元

* 零或更多字元

# 任何單個數字(0 到 9)

[charlist] charlist 中的任何單個字元

[!charlist] 不在 charlist 中的任何單個字元

括在方括号 ([ ]) 内的一個或多個字元的組 (charlist) 可以用于比對 string 中的任何單個字元,并且可以包含幾乎任何字元代碼(包括數字)。

注意   若要比對特殊字元,如左方括号 ([)、問号 (?)、數字元号 (#) 和星号 (*),請将它們括在方括号中。不能在組中使用右方括号 (]) 來比對它自己,但可以在組外作為單個字元使用。

通過使用連字元 (–) 将範圍的上下限分開,charlist 可以指定字元的範圍。例如,如果 string 中的相應字元位置包含範圍 A–Z 中的任何大寫字母,則 [A-Z] 将産生比對。可以在方括号中包括多個範圍而不用分隔符。

指定範圍的含義取決于在運作時有效的字元排序(由 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。該範圍不比對 ê 或 ê,因為在排序順序中,重音字元排在非重音字元之後。

模式比對的其他重要規則包括:

charlist 開始處的感歎号 (!) 意味着僅當在 string 中找到除 charlist 以外的任何字元時才發生比對。當在方括号外使用時,感歎号比對它自己。

連字元 (-) 可以出現在 charlist 的開始處(如果有感歎号,則在它後面)或結尾處以比對它自己。在任何其他位置,連字元辨別由連字元兩側的字元界定的字元範圍。

在指定字元範圍時,這些字元必須以升序排序順序出現(即,從最低到最高)。是以,[A-Z] 是有效的模式,但 [Z-A] 不是。

字元序列 [] 被視為零長度字元串 ("")。

在某些語言中,字母表中有一些表示兩種不同字元的特殊字元。例如,有幾種語言使用字元 ? 來表示字元 a 和 e(當這兩個字元一起出現時)。Like 運算符認為該單個特殊字元與這兩個字元是等效的。

當在系統區域設定中指定使用特殊字元的語言時,在 pattern 或 string 中出現的單個特殊字元都比對其他字元串中等效的雙字元序列。與此類似,括在方括号内的 pattern 中的單個特殊字元(獨立存在、在清單中或在某個範圍内)比對 string 中等效的雙字元序列。

示例

本示例使用 Like 運算符将字元串與模式比較。結果是 Boolean 值,它表示該字元串是否符合該模式。

Dim myCheck As Boolean

myCheck = "F" Like "F"   ' Does "F" match "F"? Returns True.

myCheck = "F" Like "f"   ' Does "F" match "f"? Returns False.

myCheck = "F" Like "FFF"   ' Does "F" match "FFF"? Returns False.

myCheck = "aBBBa" Like "a*a"   ' Does "aBBBa" have a "a" at the

   ' beginning, an "a" at the end, and any number of characters in

   ' between? Returns True.

myCheck = "F" Like "[A-Z]"   ' Does "F" occur in the set of

   ' characters from A to Z? Returns True.

myCheck = "F" Like "[!A-Z]"     ' Does "F" NOT occur in the set of

   ' characters from A to Z? Returns False.

myCheck = "a2a" Like "a#a"     ' Does "a2a" begin and end with an

   ' "a" and have any single-digit number inbetween? Returns True.

myCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Does "aM5b" fit the following

   ' pattern: Begins with "a", has and character from the set L through

   ' P, followed byb any single-digit number, and finally contains any

   ' character excluded from the character set c through e. Returns True.

myCheck = "BAT123khg" Like "B?T*"  ' Does "BAT123khg" fit the

   ' following pattern: Begins with "B", followed by any single

   ' character, followed by a "T" and finally zero or more characters

   ' of any type. Returns True.

myCheck = "CAT123khg" Like "B?T*"  ' Does "CAT123khg" fit the

   ' of any type. Returns False.

Option Compare 語句請參見

比較運算符 | InStr 函數 | InStrRev 函數 | Option Strict 語句 | Option Explicit 語句 | Replace 函數 | Split 函數 | StrComp 函數 | /optionexplicit | /optionstrict | /optioncompare:binary | /optioncompare:text

用于在檔案級聲明當比較字元串資料時所使用的預設比較方法。

Option Compare { Binary | Text }

Binary

可選項。導緻基于從字元的内部二進制表示形式導出的排序順序進行字元串比較。

Text

可選項。導緻基于由系統的區域設定确定的不區分大小寫的文本排序順序進行字元串比較。

如果使用,則 Option Compare 語句必須出現在檔案中其他任何源語句之前。

Option Compare 語句為類、子產品或結構指定字元串比較方法(Binary 或 Text)。如果未包括 Option Compare 語句,則預設的文本比較方法是 Binary。

在 Microsoft Windows 中,排序順序由代碼頁确定。在下面的示例中,使用 Option Compare Binary 對字元進行排序,将産生典型的二進制排序順序:

A < B < E < Z < a < b < e < z < à < ê < ? < à < ê < ?

如果使用 Option Compare Text 對同樣的字元進行排序,将産生下面的文本排序順序:

(A=a) < (à = à) < (B=b) < (E=e) < (ê = ê) < (Z=z) < (? = ?)

本示例使用 Option Compare 語句設定預設的字元串比較方法。隻能在子產品級使用 Option Compare 語句。

' Set the string comparison method to Binary.

Option Compare Binary   ' That is, "AAA" is less than "aaa".

' Set the string comparison method to Text.

Option Compare Text   ' That is, "AAA" is equal to "aaa".

請參見

繼續閱讀