Like İşleci (Visual Basic)
Bir dizeyi bir desenle karşılaştırır.
Önemli
İşleç Like
şu anda .NET Core ve .NET Standard projelerinde desteklenmiyor.
Sözdizimi
result = string Like pattern
Parça
result
Gerekli. Herhangi bir Boolean
değişken. Sonuç, değerinin değerini karşılayıp sağlamadığını string
gösteren bir Boolean
değerdirpattern
.
string
Gerekli. Herhangi bir String
ifade.
pattern
Gerekli. "Açıklamalar" bölümünde açıklanan desen eşleştirme kurallarına uyan tüm String
ifadeler.
Açıklamalar
içindeki string
değeri içinde yer alan pattern
deseni karşılarsa , result
olur True
. Dize deseni karşılamıyorsa, result
olur False
. Hem hem pattern
de string
boş dizelerse sonuç olurTrue
.
Karşılaştırma Yöntemi
işlecinin Like
davranışı Option Compare Deyimine bağlıdır. Her kaynak dosya için varsayılan dize karşılaştırma yöntemi şeklindedir Option Compare Binary
.
Desen Seçenekleri
Yerleşik desen eşleştirme, dize karşılaştırmaları için çok yönlü bir araç sağlar. Desen eşleştirme özellikleri içindeki her karakteri belirli bir karakterle string
, joker karakterle, karakter listesiyle veya karakter aralığıyla eşleştirmenizi sağlar. Aşağıdaki tabloda, içinde pattern
izin verilen karakterler ve bunların neyle eşleştği gösterilmektedir.
içindeki karakterler pattern |
Eşleşmeler: string |
---|---|
? |
Herhangi bir tek karakter |
* |
Sıfır veya daha fazla karakter |
# |
Herhangi bir tek basamaklı (0-9) |
[charlist] |
içindeki herhangi bir tek karakter charlist |
[!charlist] |
Içinde olmayan tek bir karakter charlist |
Karakter Listeleri
Köşeli ayraç (charlist
) içine alınmış bir veya daha fazla karakterden[ ]
oluşan bir grup, içindeki string
herhangi bir karakterle eşleştirmek için kullanılabilir ve basamaklar dahil olmak üzere neredeyse tüm karakter kodlarını içerebilir.
başındaki charlist
ünlem işareti (!
), içinde karakterlerin dışında charlist
herhangi bir karakter bulunduğunda string
eşleşme yapıldığı anlamına gelir. Dış köşeli ayraçlar kullanıldığında ünlem işareti kendisiyle eşleşir.
Özel Karakterler
Sol köşeli ayraç (), soru işareti ([
?
), sayı işareti (#
) ve yıldız işareti ()*
ile eşleştirmek için bunları köşeli ayraç içine alın. Sağ köşeli ayraç (]
) bir grubun içinde kendi kendine eşleşecek şekilde kullanılamaz, ancak grubun dışında tek bir karakter olarak kullanılabilir.
Karakter dizisi []
sıfır uzunluklu dize (""
) olarak kabul edilir. Ancak köşeli ayraç içine alınmış bir karakter listesinin parçası olamaz. içindeki string
bir konumun karakter grubundan birini içerip içermediğini veya karakter içermediğini denetlemek istiyorsanız, iki kez kullanabilirsiniz Like
. Bir örnek için bkz . Nasıl yapılır: Bir Dizeyi Desenle Eşleştirme.
Karakter Aralıkları
Aralığın alt ve üst sınırlarını charlist
ayırmak için kısa çizgi (–
) kullanarak bir karakter aralığı belirtebilir. Örneğin, [A–Z]
içindeki karşılık gelen karakter konumu string
– aralığında A
[!H–L]
Z
herhangi bir karakter içeriyorsa ve karşılık gelen karakter konumu aralığın H
dışında bir karakter içeriyorsa eşleşmeyle sonuç verir.L
Bir karakter aralığı belirttiğinizde, en düşükten en yükseğe kadar artan sıralama düzeninde görünmeleri gerekir. Bu nedenle geçerli [A–Z]
bir desendir ancak [Z–A]
geçerli değildir.
Birden Çok Karakter Aralığı
Aynı karakter konumu için birden çok aralık belirtmek için, bunları sınırlayıcı olmadan aynı köşeli ayraç içine yerleştirin. Örneğin, [A–CX–Z]
içindeki karşılık gelen karakter konumustring
, aralık – veya aralık X
A
C
– içinde herhangi bir karakter içeriyorsa eşleşmeye neden olur.Z
Kısa Çizgi kullanımı
Kısa çizgi (–
) başında (varsa ünlem işaretinden sonra) veya sonunda charlist
kendi kendine eşleşmesi için görüntülenebilir. Diğer herhangi bir konumda, kısa çizgi, kısa çizginin her iki tarafındaki karakterlerle sınırlandırılmış bir karakter aralığı tanımlar.
Harmanlama Sırası
Belirtilen aralığın anlamı, tarafından belirlenen Option Compare
çalışma zamanında karakter sıralamasına ve kodun üzerinde çalıştığı sistemin yerel ayarına bağlıdır. ile Option Compare Binary
aralık , , B
, C
D
ve E
ile eşleşirA
.[A–E]
ile , [A–E]
, , , À
a
, à
, , B
, b
, , C
, D
c
, E
d
ve e
ile Option Compare Text
eşleşirA
. Aralık eşleşmiyor Ê
veya ê
sıralama düzeninde vurgulu karakterler eşlenmemiş karakterlerden sonra harmanlandığından.
Digraph Karakterleri
Bazı dillerde, iki ayrı karakteri temsil eden alfabetik karakterler vardır. Örneğin, çeşitli diller karakterleri ve e
birlikte göründükleri zamanları temsil etmek için karakterini æ
a
kullanır. işleci, Like
tek bir digraph karakterinin ve iki ayrı karakterin eşdeğer olduğunu tanır.
Sistem yerel ayarı ayarlarında digraph karakteri kullanan bir dil belirtildiğinde, tek digraph karakterinin diğer dizedeki pattern
eşdeğer iki karakterli diziyle eşleşmesi veya string
bu dizedeki tek bir digraph karakterinin oluşumu. Benzer şekilde, köşeli ayraç içine alınmış (tek başına, listede veya aralıkta) bir digraph karakteri pattern
, içindeki string
eşdeğer iki karakterlik diziyle eşleşir.
Aşırı Yükleme
İşleç Like
aşırı yüklenebilir, yani bir işlenen bu sınıf veya yapı türüne sahip olduğunda bir sınıf veya yapı davranışını yeniden tanımlayabilir. Kodunuz bu işleci böyle bir sınıf veya yapıda kullanıyorsa, yeniden tanımlanmış davranışını anladığınızdan emin olun. Daha fazla bilgi için bkz . İşleç Yordamları.
Örnek
Bu örnek, dizeleri çeşitli desenlerle karşılaştırmak için işlecini kullanır Like
. Sonuçlar, her dizenin deseni karşılayıp sağlamadığını belirten bir Boolean
değişkene gider.
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*"