Share via


HOW TO:比對字串和模式

更新:2007 年 11 月

如果您想找出String 資料型別 (Visual Basic) 的運算式是否符合樣式,可以使用 Like 運算子 (Visual Basic)

Like 會採用兩個運算元。左運算元為字串運算式 (String Expression),右運算元則為包含用於比對之樣式的字串。Like 會傳回 Boolean 值,指出字串運算式是否符合樣式。

您可以針對特定字元、萬用字元、字元清單或字元範圍,比對字串運算式中的每個字元。樣式比對字串中的規格位置,會對應到要在字串運算式中比對的字元位置。

根據特定字元比對字串運算式中的字元

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

    下列範例會測試 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 會將序列 (Sequence) [] 視為長度為零的字串 ("")。您可以使用 [] 測試整個字串運算式是否為空的,但無法用於測試字串運算式中的特定位置是否為空的。如果空位置是您需測試的其中一個選項,則可以多次使用 Like。

若要根據字元清單或無字元比對字串運算式中的字元

  1. 在相同的字串運算式上呼叫 Like 運算子兩次,並以 Or 運算子 (Visual Basic)OrElse 運算子連接這兩次呼叫。

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

  3. 在第二個 Like 子句的樣式比對字串中,請勿在要比對的位置放入任何字元。

    下列範例會測試七位數的電話號碼 phoneNum,是否剛好為三位數字,之後緊接著空格、短破折號 (–)、句號 (.) 或全然沒有字元,再緊接著的剛好是四位數字。

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

請參閱

概念

Visual Basic 中的運算子和運算式

參考

比較運算子 (Visual Basic)

Like 運算子 (Visual Basic)

String 資料型別 (Visual Basic)