Sdílet prostřednictvím


Postupy: Porovnávání řetězce se vzorem (Visual Basic)

Pokud chcete zjistit, jestli výraz datového typu String splňuje vzor, můžete použít operátor Like.

Like přijímá dva operandy. Levý operand je řetězcový výraz a pravý operand je řetězec obsahující vzor, který se má použít pro porovnávání. Like Boolean vrátí hodnotu určující, zda řetězcový výraz splňuje vzor.

Jednotlivé znaky ve výrazu řetězce můžete spárovat s určitým znakem, zástupným znakem, seznamem znaků nebo oblastí znaků. Pozice specifikací ve vzorovém řetězci odpovídají pozicím znaků, které se mají shodovat ve výrazu řetězce.

Porovnat znak ve výrazu řetězce s konkrétním znakem

Vložte konkrétní znak přímo do řetězce vzoru. Některé speciální znaky musí být uzavřeny v hranatých závorkách ([ ]). Další informace naleznete v tématu Like – operátor.

Následující příklad testuje, zda myString se skládá přesně z jednoho znaku H.

Dim sMatch As Boolean = myString Like "H"

Aby bylo možné porovnat znak ve výrazu řetězce se zástupným znakem

Vložte do řetězce vzoru otazník (?). Jakýkoli platný znak v této pozici vytvoří úspěšnou shodu.

Následující příklad testuje, zda myString se skládá z jednoho znaku W následovaného přesně dvěma znaky všech hodnot.

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

Chcete-li porovnat znak ve výrazovém řetězci se seznamem znaků

Vložte do řetězce vzoru závorky ([ ]) a do závorek umístěte seznam znaků. Neoddělujte znaky čárkami ani žádným jiným oddělovačem. Každý jeden znak v seznamu provede úspěšnou shodu.

Následující příklad testuje, zda myString se skládá z libovolného platného znaku následovaného přesně jedním z znaků A, Cnebo E.

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

Všimněte si, že tato shoda je citlivá na velká a malá písmena.

Porovnat znak ve výrazu řetězce s rozsahem znaků

Vložte do řetězce vzoru závorky ([ ]) a do závorek vložte nejnižší a nejvyšší znaky v oblasti oddělené pomlčkou (). Jakýkoliv jediný znak v rozsahu splní podmínku úspěšné shody.

Následující příklad testuje, zda myString se skládá z znaků num následovaných přesně jedním z znaků i, , j, k, l, mnebo n.

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

Všimněte si, že tato shoda je citlivá na velká a malá písmena.

Porovnávání prázdných řetězců

Like považuje sekvenci [] za řetězec nulové délky (""). Můžete použít [] k otestování, jestli je celý řetězcový výraz prázdný, ale nemůžete ho použít k otestování, jestli je konkrétní pozice ve výrazu řetězce prázdná. Pokud je prázdná pozice jednou z možností, pro kterou potřebujete testovat, můžete použít Like více než jednou.

Porovnat znak v řetězci se seznamem znaků nebo bez znaku

  1. Volání operátoru Like dvakrát ve stejném řetězcovém výrazu a spojení těchto dvou volání operátorem Or nebo Operátorem OrElse.

  2. Do řetězce vzoru pro první Like klauzuli uveďte seznam znaků uzavřený v hranatých závorkách ([ ]).

  3. V řetězci vzoru pro druhou Like klauzuli nevkládejte žádný znak na danou pozici.

    Následující příklad testuje sedmimístné telefonní číslo phoneNum pro přesně tři číselné číslice, následované mezerou, spojovníkem (), tečkou (.) nebo žádným znakem, následovaným přesně čtyřmi číselnými číslicemi.

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

Viz také