Like Operátor (Visual Basic)
Egy sztringet hasonlít össze egy mintával.
Fontos
Az Like
operátor jelenleg nem támogatott a .NET Core és a .NET Standard projektekben.
Syntax
result = string Like pattern
Részek
result
Szükséges. Bármely Boolean
változó. Az eredmény egy Boolean
érték, amely azt jelzi, hogy az string
adott érték megfelel-e a pattern
.
string
Szükséges. Bármilyen String
kifejezés.
pattern
Szükséges. Bármely String
kifejezés, amely megfelel a "Megjegyzések" szakaszban leírt mintaegyeztetési konvencióknak.
Megjegyzések
Ha a benne lévő string
érték megfelel a benne foglalt mintánakpattern
, result
akkor az .True
Ha a sztring nem felel meg a mintának, result
akkor a következő False
: . Ha mindkettő string
pattern
üres sztring, az eredmény az True
.
Összehasonlító módszer
Az operátor viselkedése az Like
Option Compare Utasítástól függ. Az egyes forrásfájlok alapértelmezett sztring-összehasonlító metódusa a következő Option Compare Binary
.
Mintabeállítások
A beépített mintaegyeztetés sokoldalú eszközt biztosít a sztringek összehasonlításához. A mintamegfeleltetési funkciók lehetővé teszik, hogy az egyes karaktereket string
egy adott karakterhez, helyettesítő karakterhez, karakterlistához vagy karaktertartományhoz hasonlítsa. Az alábbi táblázat az engedélyezett pattern
karaktereket és azok egyezését mutatja.
Karakterek a következőben: pattern |
Egyezések a következőben: string |
---|---|
? |
Bármely egyetlen karakter |
* |
Nulla vagy több karakter |
# |
Bármely egy számjegy (0–9) |
[charlist] |
Bármely karakter a következőben: charlist |
[!charlist] |
Minden olyan karakter, amely nem szerepel a charlist |
Karakterlisták
A szögletes zárójelben[ ]
(charlist
) egy vagy több karakterből álló csoport bármely karakterhez string
használható, és szinte bármilyen karakterkódot tartalmazhat, beleértve a számjegyeket is.
A felkiáltójel (!
) az elején charlist
azt jelenti, hogy egyezés akkor jön létre, ha a karakterek kivételével bármely karakter megtalálható a fájlban charlist
string
. Külső zárójelek használata esetén a felkiáltójel önmagával egyezik.
Speciális karakterek
A speciális karakterek bal oldali szögletes zárójelének (), kérdőjelének ([
?
), számjelének (#
) és csillagának (*
) egyezéséhez szögletes zárójelekbe foglalja őket. A jobb oldali szögletes zárójel (]
) nem használható a csoporton belül önmagához való igazodáshoz, de a csoporton kívül is használható egyéni karakterként.
A karaktersorozat []
nulla hosszúságú sztringnek (""
) minősül. Ez azonban nem lehet a zárójelek közé zárt karakterlista része. Ha ellenőrizni szeretné, hogy egy pozíció string
tartalmaz-e egy karaktercsoportot, vagy egyáltalán nincs karakter, használhatja Like
kétszer. Példa: Sztring egyeztetése mintával.
Karaktertartományok
A tartomány charlist
alsó és felső határának elválasztásához kötőjel (–
) használatával megadhat egy karaktertartományt. Egyezést eredményez például, [A–Z]
ha a megfelelő karakterpozíció string
a tartományon A
belül bármilyen karaktert tartalmaz –Z
és [!H–L]
egyezést eredményez, ha a megfelelő karakter pozíciója a tartományon H
kívüli karaktereket tartalmaz –L
.
Ha egy karaktertartományt ad meg, a karaktereknek növekvő rendezési sorrendben kell megjelenniük, azaz a legalacsonyabbtól a legmagasabbig. Így érvényes minta, [A–Z]
de [Z–A]
nem.
Több karaktertartomány
Ha több tartományt szeretne megadni ugyanahhoz a karakterhelyzethez, helyezze őket ugyanabban a szögletes zárójelben elválasztójelek nélkül. Egyezést eredményez például, [A–CX–Z]
ha a megfelelő karakterpozíció string
a tartományban – vagy a tartományban A
X
–C
Z
belül tartalmaz bármilyen karaktert.
A kötőjel használata
A kötőjel (–
) megjelenhet az elején (felkiáltójel után, ha van ilyen), vagy a végén charlist
, hogy megfeleljen magának. Bármely más helyen a kötőjel a kötőjel mindkét oldalán lévő karakterek által elválasztott karaktertartományt azonosítja.
Rendezési sorrend
A megadott tartomány jelentése a futtatáskor történő karakterrendezéstől függ, amelyet a kód által Option Compare
meghatározott rendszer területi beállítása határoz meg. A Option Compare Binary
with , a range [A–E]
egyezik A
, B
, C
, D
és E
. A következőkkel: , egyezések A
, a
, À
à
, B
, b
, , C
E
D
c
d
, és .e
[A–E]
Option Compare Text
A tartomány nem egyezik, Ê
vagy ê
mert az ékezetes karakterek rendezési sorrendben rendezetlen karakterek után rendeznek.
Digraph karakterek
Egyes nyelvekben vannak betűrendes karakterek, amelyek két különálló karaktert jelölnek. Több nyelv például a karaktert æ
használja a karakterek a
megjelenítésére és e
azok együttes megjelenítésére. Az Like
operátor felismeri, hogy az egyetlen digráfjel és a két egyéni karakter egyenértékű.
Ha a rendszer területi beállításaiban meg van adva egy digráfjelet használó nyelv, az egyetlen digraph karakter előfordulása vagy pattern
string
megegyezik a másik sztring azonos két karakterből álló sorozatával. Hasonlóképpen, a szögletes zárójelekben (önmagában pattern
, egy listában vagy egy tartományban) lévő digráfjel megegyezik a megfelelő kétkarakteres sorozattal string
.
Túlterhelés
Az Like
operátor túlterhelhető, ami azt jelenti, hogy egy osztály vagy struktúra újradefiniálta a viselkedését, ha egy operandus az adott osztály vagy struktúra típusával rendelkezik. Ha a kód egy ilyen osztályon vagy struktúrán használja ezt az operátort, győződjön meg arról, hogy tisztában van az újradefiniált viselkedésével. További információ: Operátori eljárások.
Példa
Ez a példa az operátor használatával hasonlítja össze a Like
sztringeket a különböző mintákkal. Az eredmények egy Boolean
változóba kerülnek, amely azt jelzi, hogy minden sztring megfelel-e a mintának.
Dim testCheck As Boolean
' The following statement returns True (does "F" satisfy "F"?)
testCheck = "F" Like "F"
' The following statement returns False for Option Compare Binary
' and True for Option Compare Text (does "F" satisfy "f"?)
testCheck = "F" Like "f"
' The following statement returns False (does "F" satisfy "FFF"?)
testCheck = "F" Like "FFF"
' The following statement returns True (does "aBBBa" have an "a" at the
' beginning, an "a" at the end, and any number of characters in
' between?)
testCheck = "aBBBa" Like "a*a"
' The following statement returns True (does "F" occur in the set of
' characters from "A" through "Z"?)
testCheck = "F" Like "[A-Z]"
' The following statement returns False (does "F" NOT occur in the
' set of characters from "A" through "Z"?)
testCheck = "F" Like "[!A-Z]"
' The following statement returns True (does "a2a" begin and end with
' an "a" and have any single-digit number in between?)
testCheck = "a2a" Like "a#a"
' The following statement returns True (does "aM5b" begin with an "a",
' followed by any character from the set "L" through "P", followed
' by any single-digit number, and end with any character NOT in
' the character set "c" through "e"?)
testCheck = "aM5b" Like "a[L-P]#[!c-e]"
' The following statement returns True (does "BAT123khg" begin with a
' "B", followed by any single character, followed by a "T", and end
' with zero or more characters of any type?)
testCheck = "BAT123khg" Like "B?T*"
' The following statement returns False (does "CAT123khg"?) begin with
' a "B", followed by any single character, followed by a "T", and
' end with zero or more characters of any type?)
testCheck = "CAT123khg" Like "B?T*"
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: