Like 運算子
用來比較兩個字串。
語法
結果 = 字串Like模式
Like 運算子的語法有以下部分:
部分 | 描述 |
---|---|
result | 必要;任何數值的變數。 |
string | 必填;任何 字串表達式。 |
模式 | 必填;任何符合中所述模式比對慣例的字串表達式。 |
註解
如果 字串 符合 模式, 則結果 為 True;如果沒有相符專案, 則結果 為 False。 如果 字串 或 模式 為 Null, 則結果 為 Null。
Like 運算子的行為取決於 Option Compare 語句。 每個模組的預設字串比較方法是Option Compare Binary。
選項比較二進位 檔會根據衍生自字元內部二進位表示法的 排序順序 ,產生字串比較。 排序順序取決於代碼頁。
在下列範例中,會顯示典型的二進位排序順序:
A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø
選項 [比較文字 ] 會根據您系統 地區設定所決定的不區分大小寫文字排序順序,產生字串比較。 當您使用 選項比較文字排序相同的字元時,會產生下列文字排序順序:
(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)
內建模式比對提供多功能的字串比較工具。 模式比對功能可讓您在任何組合中使用通配符、字元清單或字元範圍來比對字串。 下表顯示 模式 中允許的字元及其相符的專案:
模式中的字元 | 字串中的相符專案 |
---|---|
? | 任何單一字元。 |
* | 零個或多個字元。 |
# | 任何單一數位 (0-9) 。 |
[ charlist ] | charlist 中的任何單一字元。 |
[ !charlist ] | 任何不在 charlist 中的單一字元。 |
字元 清單 ( 一或多個字元群組 ) 括在方括號 ([ ]) 可以用來比對 字串 中的任何單一字元,而且可以包含幾乎任何 字元碼,包括數位。
注意事項
若要比對 [) ]、問號 (?) 、數位符號 # () 和 * 星號 () (特殊字元,請將它們括在方括弧中。 右括弧 (]) 無法在群組內用來比對本身,但可在群組外部當做個別字元使用。
藉由使用連字元 (-) 來分隔範圍的上限和下限, charlist 可以指定字元範圍。 例如, [A-Z]
如果 字串 中對應的字元位置包含範圍 A-Z 中的任何大寫字母,則會產生相符的結果。 括弧內包含多個範圍,不含分隔符。
指定範圍的意義取決於 運行時間 的有效字元排序 (由 Option Compare 所決定,以及程式代碼在) 上執行的系統 地區 設定。 使用 選項比較二進位範 例,範圍 [A-E]
會比對 A、B 和 E。使用 選項比較文字, [A-E]
比對 A、a、À、à、B、b、E、e。 範圍不符合 Ê 或 ê,因為重音字元會落在排序順序中未使用的字元之後。
樣式比對的重要規則包括下列幾項:
- 在 charlist 開頭的驚歎號 (!) 表示如果字串中找到 charlist 中字元以外的任何字元,就會進行比對。 使用外括弧時,驚嘆號會比對本身。
- 如果使用連字元 (-) ,則在驚嘆號之後的開頭 (可以出現連字元) 或字元 清單 結尾以比對本身。 在任何其他位置中,連字元是用來識別字元範圍。
- 指定字元範圍時,字元必須以遞增排序順序顯示 (從最低到最高) 。
[A-Z]
是有效的模式,但不是[Z-A]
。 - 字串序列
[]
會被視為零長度字串 (“”) 。
在某些語言中,字母中有代表兩個不同字元的特殊字元。 例如,數種語言使用字元 「æ」 來代表字元 「a」 和 「e」 同時出現。 Like 運算子可辨識單一特殊字元和兩個個別字元相等。
在系統地區設定中指定使用特殊字元的語言時, 模式 或 字串 中出現的單一特殊字元會符合另一個字串中相等的 2 個字元序列。 同樣地, 以 方括弧括住的單一特殊字元 (本身、清單中或範圍中) 符合 字串中相等的 2 個字元序列。
範例
這個範例會使用 Like 運算符來比較字串與模式。
Dim MyCheck
MyCheck = "aBBBa" Like "a*a" ' Returns True.
MyCheck = "F" Like "[A-Z]" ' Returns True.
MyCheck = "F" Like "[!A-Z]" ' Returns False.
MyCheck = "a2a" Like "a#a" ' Returns True.
MyCheck = "aM5b" Like "a[L-P]#[!c-e]" ' Returns True.
MyCheck = "BAT123khg" Like "B?T*" ' Returns True.
MyCheck = "CAT123khg" Like "B?T*" ' Returns False.
MyCheck = "ab" Like "a*b" ' Returns True.
MyCheck = "a*b" Like "a [*]b" ' Returns False.
MyCheck = "axxxxxb" Like "a [*]b" ' Returns False.
MyCheck = "a [xyz" Like "a [[]*" ' Returns True.
MyCheck = "a [xyz" Like "a [*" ' Throws Error 93 (invalid pattern string).
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。