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 patterndeseni 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 stringeş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]Zherhangi bir karakter içeriyorsa ve karşılık gelen karakter konumu aralığın Hdışı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 XAC – 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 Binaryaralık , , B, CDve Eile eşleşirA.[A–E] ile , [A–E] , , , Àa, à, , B, b, , C, Dc, Edve eile Option Compare Texteş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 stringeş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*"

Ayrıca bkz.