如何:比對字串和模式 (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
是否由任何有效字元組成,且後方接著字元 A
、C
或 E
的任一者。
Dim sMatch As Boolean = myString Like "?[ACE]"
請注意,這項比對區分大小寫。
若要將字串運算式中的字元用於比對字元範圍
請將方括弧 ([ ]
) 放在模式字串中,並在括弧內放置範圍內最低和最高的字元,以連字號 (–
) 分隔。 範圍中的任何單一字元都能使比對成立。
以下範例測試 myString
是否由字元 num
組成,且後方接著字元 i
、j
、k
、l
、m
或 n
的任一者。
Dim sMatch As Boolean = myString Like "num[i-m]"
請注意,這項比對區分大小寫。
比對空字串
Like
會將序列 []
視為長度為零的字串 (""
) 。 您可以使用 []
來測試整個字串運算式是否空白,但不能用它來測試字串運算式中的特定位置是否為空白。 如果空白位置是您需要測試的選項之一,您可以使用 Like
多次。
若要將字串運算式中的字元用於比對字元清單或不比對字元
對相同字串運算式呼叫
Like
運算子兩次,並使用 Or 運算子或 OrElse 運算子 連接兩次呼叫。在第一個
Like
子句的模式字串中加入字元清單,並放在括弧 ([ ]
) 中。在第二個
Like
子句的模式字串中,請勿放入任何所需位置的字元。下列範例會測試七位數的電話號碼
phoneNum
是否為正好三個數字接著空格、連字號 (–
) 、句點 (.
) ,或完全沒有字元,後面再接著正好四個數字。Dim sMatch As Boolean = (phoneNum Like "###[ -.]####") OrElse (phoneNum Like "#######")