vb like演算子と文字列を比較

   

vb like演算子

vb like演算子

likeとは

英語の意味は以下のようなという意味があります

like演算子とは文字列と一致しているを比較します。

構文
if 文字列 like パターン then

end if

? 任意の一文字
* 任意の複数文字
# 任意の数字一文字

とりあえずサンプルソース

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text Like "aaa" Then
TextBox1.Text = "一致しました"
Else
TextBox1.Text = "一致しません"
End If

End Sub

End Class

このサンプルはテキストボックスに文字を入力して
ボタンを押したとき
一致しているか調べます。

調べるパターンはlikeの後ろのパターンです。
この場合textboxと比較してます。

このさんぷるでaaaとAAAと試したところ。
二つとも一致しますと表示されました。
大文字と小文字は同一認識するみたいです。
文字数も比較対象なのでaaaaでは一致しませんと表示されます。

サンプル2

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text Like "a?a" Then
TextBox1.Text = "一致しました"
Else
TextBox1.Text = "一致しません"
End If

End Sub

End Class

?任意の一文字は何でもいいので一文字という意味です。

abaと入力した時は実行結果は一致しましたと表示されます。
AdAでは一致しませんになります。
この場合は大文字ではいけないみたいですね。

aweaでは文字数が違うので一致しませんになります。

サンプル3
*は任意の複数ですね。
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text Like "a*a" Then
TextBox1.Text = "一致しました"
Else
TextBox1.Text = "一致しません"
End If

End Sub

End Class

azzzzzzaを入力した場合は一致しましたになります。
複数文字だと何文字でもいいみたいですね。

AddfAでは一致しませんになります。
やはり大文字は区別するんですね。

サンプル4
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text Like "a#a" Then
TextBox1.Text = "一致しました"
Else
TextBox1.Text = "一致しません"
End If

End Sub

End Class

#は任意の数字一文字です。
a1aだと一致しましたになります。

A1Aの大文字だとやはり一致しませんでした。

パターン指定文字を使用すると大文字と小文字を区別するみたいですね。

サンプル5

Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
If TextBox1.Text Like "[a-z]" Then
TextBox1.Text = "一致しました"
Else
TextBox1.Text = "一致しません"
End If

End Sub

End Class

こんどは正規表現を使用してみました。

ここでは[a-z]はa-zまで一文字という意味です。

aからzまでのアルファベットを一文字試すと一致しました。
AからZは一致しませんでした。

大文字と小文字はこの場合区別するみたいですね。

ネットで色々検索するとこのlike演算子は使わないほうがいいらしいです。
この検証は2015で検証しました。

PR



 - vb.netさんぷる

Translate »