VB.NET 正規表現で真偽値を返す(IsMatchメソッド)

VB.NETのIsMatchメソッドの正規表現で真偽値を返すサンプルです。

確認環境
・Microsoft Visual Studio Community 2019

目次

説明 IsMatchメソッド
サンプル 文字列を検索する
  文字をORで検索する
  文字を否定で検索する
  文字を範囲で指定して検索する
  先頭の文字列を検索する
  文字列の最後尾を検索する
  連続する文字を指定して検索する
  5桁の半角数値かをチェックする
  5桁の半角数値または英字の小文字(a-f)かをチェックする
  郵便番号の数値と桁数とハイフンをチェックする
パターン 正規表現の主なパターン
  大文字小文字を無視する

IsMatchメソッド

public static bool IsMatch (string input, string pattern);

文字列を検索する

文字列を検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "BC"

        Console.WriteLine(Regex.IsMatch("ABC", a)) 'True
        Console.WriteLine(Regex.IsMatch("ACB", a)) 'False
    End Sub
End Module

5行目は、正規表現で文字列「BC」があるかを指定しています。
7行目はtrueに、8行目はfalseになります

文字をORで検索する

文字をORで検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "[AB]"

        Console.WriteLine(Regex.IsMatch("ABC", a)) 'True
        Console.WriteLine(Regex.IsMatch("ZZB", a)) 'True
        Console.WriteLine(Regex.IsMatch("ZZZ", a)) 'False
    End Sub
End Module

5行目は、正規表現で「A」または「B」があるかを指定しています。
7,8行目はtrueに、9行目はfalseになります。

文字を否定で検索する

文字を否定で検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "[^A]"

        Console.WriteLine(Regex.IsMatch("ZZZ", a)) 'True
        Console.WriteLine(Regex.IsMatch("ZAA", a)) 'True
        Console.WriteLine(Regex.IsMatch("AAA", a)) 'False
    End Sub
End Module

5行目は、正規表現で「A」以外の文字があるか指定しています。
7,8行目は、「A」以外の文字があるのでtrueになります。
9行目は、「A」以外の文字がないのでfalseになります。

文字を範囲で指定して検索する

文字を範囲で指定して検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "[A-C]"

        Console.WriteLine(Regex.IsMatch("ABC", a)) 'True
        Console.WriteLine(Regex.IsMatch("ZZC", a)) 'True
        Console.WriteLine(Regex.IsMatch("ZZZ", a)) 'False
    End Sub
End Module

5行目は、正規表現で「A」または「B」または「C」の文字があるか指定しています。
7,8行目は、指定の文字があるのでtrueになります。
9行目は、指定の文字がないのでfalseになります。

先頭の文字列を検索する

先頭の文字列を検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "^AB"

        Console.WriteLine(Regex.IsMatch("ABC", a)) 'True
        Console.WriteLine(Regex.IsMatch("ACB", a)) 'False
    End Sub
End Module

5行目は、正規表現で先頭に「AB」の文字があるか指定しています。
7行目は、指定の文字があるのでtrueになります。
8行目は、指定の文字がないのでfalseになります。

文字列の最後尾を検索する

文字列の最後尾を検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "BC$"

        Console.WriteLine(Regex.IsMatch("ABC", a)) 'True
        Console.WriteLine(Regex.IsMatch("ACB", a)) 'False
    End Sub
End Module

5行目は、正規表現で最後尾に「BC」の文字があるか指定しています。
7行目は、指定の文字があるのでtrueになります。
8行目は、指定の文字がないのでfalseになります。

連続する文字を指定して検索する

連続する文字を指定して検索するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "c{2}"

        Console.WriteLine(Regex.IsMatch("acccb", a)) 'True
        Console.WriteLine(Regex.IsMatch("accb", a)) 'True
        Console.WriteLine(Regex.IsMatch("acbc", a)) 'False
    End Sub
End Module

5行目は、正規表現で「c」が2回連続することを指定しています。
7,8行目は、指定の文字があるのでtrueになります。
9行目は、指定の文字がないのでfalseになります。

5桁の半角数値かをチェックする

5桁の半角数値かをチェックするサンプルです。

Imports System.Text.RegularExpressions

Module Module1
	Sub Main()
		Dim a As String = "^[0-9]{5}$"

		Console.WriteLine(Regex.IsMatch("12345", a)) 'True
		Console.WriteLine(Regex.IsMatch("123", a)) 'False
		Console.WriteLine(Regex.IsMatch("a2345", a)) 'False
	End Sub
End Module

5行目は、正規表現で5桁の半角数値を指定しています。
7行目は、数値5桁のためTrueになります。
8行目は、桁数がたりないのでFalseになります。
9行目は、数値以外の文字があるのでFalseになります

5桁の半角数値または英字の小文字(a-f)かをチェックする

5桁の半角数値または英字の小文字(a-f)かをチェックするサンプルです。

Imports System.Text.RegularExpressions

Module Module1
	Sub Main()
		Dim a As String = "^[0-9a-f]{5}$"

		Console.WriteLine(Regex.IsMatch("1a23b", a)) 'True
		Console.WriteLine(Regex.IsMatch("a1bc", a)) 'False
		Console.WriteLine(Regex.IsMatch("12345", a)) 'True
		Console.WriteLine(Regex.IsMatch("abcde", a)) 'True
	End Sub
End Module

5行目は、正規表現で5桁半角数値または英字の小文字(a-f)を指定しています。
7行目は、指定の文字があるのでTrueになります。
8行目は、5桁ではないためFalseが返ります。
9行目は、数値のみですがヒットします。
10行目は、英字のみですがヒットします。

郵便番号の数値と桁数とハイフンをチェックする

郵便番号の数値と桁数とハイフンをチェックするサンプルです。

Imports System.Text.RegularExpressions

Module Module1
	Sub Main()
		Dim a As String = "^\d{3}-\d{4}$"

		Console.WriteLine(Regex.IsMatch("123-4567", a)) 'True
		Console.WriteLine(Regex.IsMatch("1234567", a)) 'False
		Console.WriteLine(Regex.IsMatch("1234-567", a)) 'False
	End Sub
End Module

5行目は、正規表現で郵便番号の数値と桁数とハイフンを指定しています。
\dは、数値を意味します。[0-9]と同じです。

正規表現の主なパターン

以下は、正規表現の主なパターンです。

パターン パターンの意味
ABD ABDという文字か。
[ABD] A or B or Dのどれか1文字が入っているか。
[^ABD] A と B と D以外の1文字が入っているか。否定です。
先頭の文字の正規表現と似ています。
[A-C] A or B or C のどれか1文字が入っているか。
A|B|D A or B or Dのどれか1文字が入っているか。
[a-zA-Z] 英字の小文字のaからzまたは大文字のAからZのどれか1文字が入っているか。
^A 先頭の文字はAか。
否定の正規表現と似ています。
A$ 最後尾の文字はAか。
* *の直前の文字が0回以上の繰り返し。
+ +の直前の文字が1回以上の繰り返し。
? ?の直前の文字が0回または1回の繰り返し。
{n} n回続いている。
{n,} n回以上続いている。
 . 任意の一文字を表す。
¥s 比較する文字に、空白1文字がある。
¥d 比較する文字に、数字1文字がある。 ([0-9]と同じ)
¥w 比較する文字に、小文字の英字 or 大文字の英字 or 数値 or アンダースコアの1文字がある。
[a-zA-Z0-9_]と同じ

大文字小文字を無視する

大文字小文字を無視するサンプルです。

Imports System.Text.RegularExpressions

Module Module1
    Sub Main()
        Dim a As String = "c"

        Dim b As Boolean = Regex.IsMatch("ABC", a, RegexOptions.IgnoreCase)

        Console.WriteLine(b) 'True
    End Sub
End Module

5行目は、小文字の「c」を指定しています。
7行目は、IsMatchメソッドの3つめの引数にRegexOptions.IgnoreCaseを指定しています。大文字小文字を無視します。
9行目は、Trueが表示されます。

関連の記事

VB.NET 文字列を操作するサンプル

△上に戻る