共用方式為


Like 運算子

以前會比較兩條弦。

語法

結果 = 圖案

Like 運算子的語法有以下部分:

部分 描述
result 必要;任何數值的變數
string 必須;任何 字串表達式
必須;任何符合備註中描述的模式匹配慣例的字串表達式。

註解

字串模式相符, 結果;若不匹配, 結果False。 如果字 模式Null結果 就是 Null

Like 運算子的行為取決於選項比較語句。 每個模組的預設字串比較方法是選項比較二進位(Option Compare Binary)。

選項比較二進位 會根據字元內部二進位表示的 排序順序 進行字串比較。 排序順序由代碼頁決定。

以下範例顯示典型的二元排序順序:

A < B < E < Z < a < b < e < z < À < Ê < Ø < à < ê < ø

選項比較文字 ,根據系統 所在地區決定的大小寫不區分文字排序,進行字串比較結果。 當你使用 Option Compare Text 排序相同字元時,會產生以下文字排序順序:

(A=a) < (À=à) < (B=b) < (E=e) < (Ê=ê) < (Z=z) < (Ø=ø)

內建的模式匹配提供了一種多功能的繩子比較工具。 模式匹配功能允許你使用萬用卡字元、角色列表或字元範圍,任意組合來匹配字串。 下表顯示了圖案中允許的字 元及其相 配內容:

模式中的角色 串連比賽
? 任何單一角色。
* 零個或更多角色。
# 任何一個數字 (0到9) 。
[ 查利斯特 ] 《查利斯特》中任何單一角色。
[ 查利斯特 ] 任何不在 《Charlist》裡的角色。

一組一個或多個字元 ( charlist ) 括號內 ([ ]) 可用來匹配字 中的任何單一字元,且幾乎可以包含任何 字元代碼,包括數字。

注意事項

為了匹配左括號 ([) 、問號 (?) 、數字符號 (#) ,以及星號 (*) ,請將它們包圍在括號中。 右括號 (]) 不能在群體內使用以匹配自己,但可以作為單獨角色在群體外使用。

透過使用連字號 (-) 來區分範圍的上下界, charlist 可以指定一個字元範圍。 例如 [A-Z] ,若字 中對應的字元位置包含 A-Z 範圍內的任何大寫字母,則會產生匹配。 括號內包含多個範圍,且無分隔符。

指定範圍的意義取決於 執行時 有效的字元排序 (由 Option Compare 及程式碼執行的 系統區域 設定) 決定。 以 選項比較二元 範例為例,範圍 [A-E] 與 A、B 和 E 相符。使用 選項比較文本,匹配 [A-E] A、A、À、À、B、B、E。 這個範圍不符合 Ê 或 ê,因為帶重音符號會依排序順序落在無重音符號之後。

樣式比對的重要規則包括下列幾項:

  • 驚嘆號 (,在charlist開頭) 表示若字中除了charlist字元外,任何字元被找到,則該配對。 若使用外括號,驚嘆號會與自己相符。
  • 連字符 (-) 可以出現在開頭 (如果) 使用感嘆號後,或是在 charlist 結尾以自相呼應。 在其他位置,連字號用來識別一系列字元。
  • 當指定一個字元範圍時,它們必須依從最低到最高 () 排序。 [A-Z] 是一個有效的模式,但 [Z-A] 並非如此。
  • 字元序列 [] 被視為零長度的字串 (“”“) 。

在某些語言中,字母表中存在代表兩個獨立字元的特殊字元。 例如,有幾種語言會用「æ」字來表示「a」和「e」兩個字同時出現。 Like運算子會辨識單一特殊字元與兩個獨立字元是等價的。

當系統區域設定中指定使用特殊字元的語言時,任一 模式字串 中出現單一特殊字元,會與另一字串中等效的兩字元序列相符。 同樣地, 模式中一個 以括號包圍的特殊字元,單獨、 (列中,或) 範圍內,與字 中等效的兩字元序列相符。

範例

此範例使用 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 支援與意見反應