Bagikan melalui


Operator Like (Visual Basic)

Membandingkan string dengan suatu pola.

Penting

Operator Like saat ini tidak didukung dalam proyek .NET Core dan .NET Standard.

Sintaks

result = string Like pattern  

Generator

result
Harus diisi. Variabel Boolean apa pun. Hasilnya adalah nilai Boolean yang menunjukkan apakah string memenuhi pattern atau tidak.

string
Harus diisi. Ekspresi String apa pun.

pattern
Harus diisi. Ekspresi String apa pun yang sesuai dengan konvensi pencocokan-pola yang dijelaskan dalam "Keterangan."

Keterangan

Jika nilai dalam string memenuhi pola yang terkandung dalam pattern, result adalah True. Jika string tidak memenuhi polanya, result adalah False. Jika keduanya string dan pattern merupakan string kosong, hasilnya adalah True.

Metode Perbandingan

Perilaku operator Like tergantung pada Pernyataan Perbandingan Opsi. Metode perbandingan string default untuk setiap file sumber adalah Option Compare Binary.

Opsi Pola

Pencocokan pola-bawaan menyediakan alat serbaguna untuk perbandingan string. Fitur pencocokan -pola memungkinkan Anda mencocokkan setiap karakter dalam string dengan karakter tertentu, karakter kartubebas, daftar karakter, atau rentang karakter. Tabel berikut ini memperlihatkan karakter yang diizinkan masuk pattern dan apa yang cocok.

Karakter dalam pattern Cocok dengan string
? Setiap karakter tunggal
* Nol karakter atau lebih
# Digit tunggal apa pun (0–9)
[charlist] Setiap karakter tunggal dalam charlist
[!charlist] Setiap karakter tunggal yang tidak ada di charlist

Daftar Karakter

Sekelompok satu atau beberapa karakter (charlist) yang diapit dalam tanda kurung siku ([ ]) dapat digunakan untuk mencocokkan karakter tunggal string dan dapat menyertakan hampir semua kode karakter apa pun, termasuk digit.

Tanda seru (!) di awal charlist berarti bahwa kecocokan dibuat jika ada karakter kecuali karakter dalam charlist ditemukan di string. Ketika digunakan di luar tanda kurung siku, tanda seru cocok dengan dirinya sendiri.

Karakter Khusus

Untuk mencocokkan karakter khusus kurung siku kiri ([), tanda tanya (?), tanda angka (#), dan tanda bintang (*), sertakan dalam tanda kurung siku. Kurung siku kanan (]) tidak dapat digunakan dalam grup untuk mencocokkan dirinya sendiri, tetapi dapat digunakan di luar grup sebagai karakter individual.

Urutan karakter [] dianggap sebagai string panjang-nol (""). Namun, itu tidak dapat menjadi bagian dari daftar karakter yang diapit dalam tanda kurung. Jika Anda ingin memeriksa apakah posisi di string berisi salah satu dari sekelompok karakter atau tidak ada karakter sama sekali, Anda dapat menggunakan Like dua kali. Misalnya, lihat Cara: Mencocokkan String dengan Pola.

Rentang Karakter

Dengan menggunakan tanda hubung () untuk memisahkan batas bawah dan atas rentang, charlist dapat menentukan rentang karakter. Misalnya, [A–Z] menghasilkan kecocokan jika posisi karakter yang sesuai dalam string berisi karakter apa pun dalam rentang AZ, dan [!H–L] menghasilkan kecocokan jika posisi karakter yang sesuai berisi karakter apa pun di luar rentang HL.

Saat Anda menentukan rentang karakter, mereka harus muncul dalam urutan naik, yaitu, dari terendah hingga tertinggi. Dengan demikian, [A–Z] adalah pola yang valid, tetapi [Z–A] tidak.

Beberapa Rentang Karakter

Untuk menentukan beberapa rentang untuk posisi karakter yang sama, tempatkan rentang dalam tanda kurung yang sama tanpa pemisah. Misalnya, [A–CX–Z] menghasilkan kecocokan jika posisi karakter yang sesuai dalam string berisi karakter apa pun dalam rentang AC atau rentang X-Z.

Penggunaan Tanda Hubung

Tanda hubung () dapat muncul baik di awal (setelah tanda seru, jika ada) atau di akhir charlist untuk mencocokkan dirinya sendiri. Di lokasi lain, tanda hubung mengidentifikasi rentang karakter yang dipisahkan oleh karakter di kedua sisi tanda hubung.

Membandingkan Urutan

Arti dari rentang yang ditentukan tergantung pada pengurutan karakter pada durasi, seperti yang ditentukan oleh Option Compare dan pengaturan lokal sistem yang dijalankan kode. Dengan Option Compare Binary, rentang [A–E] cocok dengan A, B, C, D, dan E. Dengan Option Compare Text, [A–E] cocok dengan A, a, À, à, B, b, C, c, D, d, E, dan e. Rentang tidak cocok Ê atau ê karena karakter beraksen disusun setelah karakter yang tidak beraksen dalam urutan pengurutan.

Karakter Digraf

Dalam beberapa bahasa, ada karakter alfabet yang mewakili dua karakter terpisah. Misalnya, beberapa bahasa menggunakan karakter æ untuk mewakili karakter a dan e saat muncul bersamaan. Operator Like mengenali bahwa karakter digraf tunggal dan dua karakter individual setara.

Saat bahasa yang menggunakan karakter digraph ditentukan dalam pengaturan lokal sistem, kemunculan karakter digraf tunggal dalam salah satu pattern atau string cocok dengan urutan dua karakter yang setara di string lainnya. Demikian pula, karakter digraf dalam pattern diapit dalam tanda kurung siku (dengan sendirinya, dalam daftar, atau dalam rentang) cocok dengan urutan dua karakter yang setara di string.

Kelebihan beban

Operator Like dapat kelebihan beban, yang berarti bahwa kelas atau struktur dapat mendefinisikan ulang perilakunya saat operand memiliki jenis kelas atau struktur tersebut. Jika kode Anda menggunakan operator ini pada kelas atau struktur seperti itu, pastikan Anda memahami perilakunya yang didefinisikan ulang. Untuk informasi lebih lanjut, lihat Prosedur Operator.

Contoh

Contoh ini menggunakan operator Like untuk membandingkan string dengan berbagai pola. Hasilnya masuk ke variabel Boolean yang menunjukkan apakah setiap string memenuhi pola.

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*"

Lihat juga