Like İşleci (Visual Basic)

Bir dizeyi desenle karşılaştırıldığında.

Önemli

Likeİşleç şu anda .NET Core'da ve .NET Standard desteklenemdir.

Syntax

result = string Like pattern  

Bölümler

result
Gereklidir. Herhangi Boolean bir değişken. Sonuç, Boolean değerinin tarafından karşılanıp karşılanmayacaklarını string belirten bir pattern değerdir.

string
Gereklidir. Herhangi String bir ifade.

pattern
Gereklidir. String"Açıklamalar" içinde açıklanan desen eşleştirme kurallarına uyan herhangi bir ifade.

Açıklamalar

içinde değeri string içinde yer alan deseni karşılarsa, pattern result True olur. Dize deseni karşılayamasa, result False değeridir. hem hem string de pattern boş dizeler ise sonuç True olur.

Karşılaştırma Yöntemi

işlecinin davranışı Like Option Compare Deyimine bağlıdır. Her kaynak dosya için varsayılan dize karşılaştırma yöntemi şu Option Compare Binary şekildedir: .

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çinde yer alan her karakteri belirli bir karakter, joker karakter, karakter listesi veya karakter aralığı ile string eşleştirmeye olanak sağlar. Aşağıdaki tabloda izin verilen karakterler ve pattern bunların eşleşmeleri yer alır.

içinde karakterler pattern içinde eşleşmeler string
? Herhangi bir tek karakter
* Sıfır veya daha fazla karakter
# Tek bir basamak (0-9)
[charlist] içinde herhangi bir tek karakter charlist
[!charlist] Içinde yer alan tek bir karakter charlist

Karakter Listeleri

içinde herhangi bir tek karakterin eşleşmesi için köşeli ayraç içine alınmış bir veya daha fazla karakterden ( ) bir grup kullanılabilir ve basamaklar dahil olmak üzere neredeyse tüm karakter charlist [ ] string kodlarını içerebilir.

başındaki ünlem işareti ( ), içinde karakterleri dışında herhangi bir karakter varsa ! charlist eşleşmenin charlist olduğu anlamına string gelir. Köşeli ayraçlar dışında kullanılırsa ünlem işareti kendisiyle eştir.

Özel Karakterler

Özel karakterler sol köşeli ayraç ( ), soru işareti ( ), sayı işareti ( ) ve yıldız işareti ( ) ile eşleşmek için bunları köşeli [ ? # * ayraç içine alın. Sağ köşeli ayraç ( ) kendisiyle eşleşmek için bir grup içinde kullanılamaz, ancak tek ] bir karakter olarak bir grubun dışında kullanılabilir.

Karakter [] dizisi, sıfır uzunluklu bir dize () olarak kabul "" edilir. Ancak köşeli ayraç içine alınmış bir karakter listesinin parçası olamaz. konumunda bir karakter grubundan biri mi yoksa hiç karakter mi içerdiğini kontrol etmek için string iki kez Like kullanabilirsiniz. Bir örnek için, bkz. How to: Match a String against a Pattern.

Karakter Aralıkları

Aralığın alt ve üst sınırlarını ayırmak için kısa çizgi ( ) kullanarak charlist bir karakter aralığı belirtebilirsiniz. Örneğin, içindeki karşılık gelen karakter konumu – aralığındaki herhangi bir karakter içeriyorsa bir eşleşme ile sonuç verir ve karşılık gelen karakter konumu, aralığın dışında herhangi bir karakter içeriyorsa bir [A–Z] string eşleşme ile sonuç A Z [!H–L] H L verir.

Bir karakter aralığı belirttiğinizde, bu karakterlerin artan sıralama düzeninde, yani en düşükten en yükseke doğru görünmesi gerekir. Bu [A–Z] nedenle, geçerli bir desendir, ancak [Z–A] 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, içindeki karşılık gelen karakter konumu aralık veya aralık – içinde herhangi bir karakter içeriyorsa [A–CX–Z] bir eşleşme ile sonuç string A C X Z verir.

Kısa çizgi kullanımı

Başında (varsa ünlem işareti sonra) veya sonunda kendiyle eşleşmesi için kısa çizgi ( ) charlist görünebilir. Başka bir konumda, kısa çizgi kısa çizginin her iki tarafındaki karakterlerle ayrılmış bir karakter aralığını tanımlar.

Harmanlama Sırası

Belirtilen aralığın anlamı, tarafından belirlenen çalışma zamanında karakter sıralamaya ve kodun üzerinde çalıştır olduğu Option Compare sistemin yerel ayar ayarına bağlıdır. ile, Option Compare Binary aralığı , , , ve ile [A–E] A B C D E eşler. ile Option Compare Text [A–E] , A , a , , , , , , , , À ve à ile B b C c D d E e eşler. Aralık eşleşmez veya Ê ê vurgulanmış karakterler sıralama düzeninde yanlış karakterlerden sonra harmanlanmış olduğundan.

Digraph Karakterleri

Bazı dillerde iki ayrı karakteri temsil eden alfabetik karakterler vardır. Örneğin, birkaç dil karakterleri ve birlikte æ görünen karakterleri temsil etmek için karakterini a e kullanır. Likeişleci, tek bir digraph karakterinin ve iki tek karakterin eşdeğer olduğunu tanır.

Sistem yerel ayarı ayarlarında bir digraf karakteri kullanan bir dil belirtilirse, ya da içinde tek bir digraph karakterinin tekrarı diğer dizedeki eşdeğer iki karakterli pattern string diziyle eşler. Benzer şekilde, köşeli ayraç içine alınmış bir digraph karakteri (tek başına, bir listede veya bir aralıkta) içindeki eşdeğer pattern iki karakterli diziyle eş string görünür.

Aşırı Yükleme

işleci aşırı yüklenmiş olabilir, yani bir işlenen o sınıf veya yapı türüne sahip olduğunda sınıf veya yapı davranışını Like yeniden tanımldırabilirsiniz. Kodunuz böyle bir sınıf veya yapıda bu işleci kullanıyorsa, bu işlecin yeniden tanımlanmamış davranışını anlayasınız. Daha fazla bilgi için bkz. İşleç Yordamları.

Örnek

Bu örnek, Like dizeleri çeşitli desenlerle karşılaştırmak için işleci kullanır. Sonuçlar, her dizenin Boolean desene uygun olup olmadığını belirten bir 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.