如何:比對字串和模式 (Visual Basic)

如果您想要瞭解 String 資料類型的運算式是否符合模式,可使用 Like 運算子

Like 使用兩個運算元。 左運算元是字串運算式,右運算元的字串則包含要用於比對的模式。 Like 會傳回 Boolean 值,指出字串運算式是否符合模式。

您可以將字串運算式中的每個字元用於比對特定字元、萬用字元、字元清單或字元範圍。 模式字串的規定位置會與字串運算式中要比對的字元位置相對應。

若要將字串運算式的字元用於比對特定字元

請將特定字元直接放在模式字串中。 某些特殊字元必須放在括弧 ([ ]) 中。 如需詳細資訊,請參閱 Like 運算子

以下範例測試 myString 是否只包含單一字元 H

Dim sMatch As Boolean = myString Like "H"

若要將字串運算式中的字元用於比對萬用字元

請將問號 (?) 放在模式字串中。 此位置的任何有效字元都能夠使比對成立。

以下範例測試 myString 是否由單一字元 W 組成,且後方接著任何值的兩個字元。

Dim sMatch As Boolean = myString Like "W??"

若要將字串運算式中的字元用於比對字元清單

請將括弧 ([ ]) 放在模式字串中,並在括弧內放入字元清單。 請勿以逗號或任何其他分隔符號分隔字元。 清單中的任何單一字元都能使比對成立。

以下範例測試 myString 是否由任何有效字元組成,且後方接著字元 ACE 的任一者。

Dim sMatch As Boolean = myString Like "?[ACE]"

請注意,這項比對區分大小寫。

若要將字串運算式中的字元用於比對字元範圍

請將方括弧 ([ ]) 放在模式字串中,並在括弧內放置範圍內最低和最高的字元,以連字號 () 分隔。 範圍中的任何單一字元都能使比對成立。

以下範例測試 myString 是否由字元 num 組成,且後方接著字元 ijklmn 的任一者。

Dim sMatch As Boolean = myString Like "num[i-m]"

請注意,這項比對區分大小寫。

比對空字串

Like 會將序列 [] 視為長度為零的字串 ("") 。 您可以使用 [] 來測試整個字串運算式是否空白,但不能用它來測試字串運算式中的特定位置是否為空白。 如果空白位置是您需要測試的選項之一,您可以使用 Like 多次。

若要將字串運算式中的字元用於比對字元清單或不比對字元

  1. 對相同字串運算式呼叫 Like 運算子兩次,並使用 Or 運算子OrElse 運算子 連接兩次呼叫。

  2. 在第一個 Like 子句的模式字串中加入字元清單,並放在括弧 ([ ]) 中。

  3. 在第二個 Like 子句的模式字串中,請勿放入任何所需位置的字元。

    下列範例會測試七位數的電話號碼 phoneNum 是否為正好三個數字接著空格、連字號 () 、句點 (.) ,或完全沒有字元,後面再接著正好四個數字。

    Dim sMatch As Boolean = 
      (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")
    

另請參閱