VB.netでプログラミングをする際ユーザーが入力した文字列が数字のみかどうかをチェックすることがあります。
この記事ではその方法について正規表現を用いて解説します。
初心者でも理解しやすいように簡潔に説明します。
正規表現で数字のみ抽出する
こちらのコードでは、\d+のみを用いています。
これにより、文字列が1回以上の数字の連続で構成されている場合にTrueとな
Dim input As String = "123"
Dim isNumeric As Boolean = Regex.IsMatch(input, "^\d+$")
If isNumeric Then
Console.WriteLine("入力された文字列は数字のみです。")
Else
Console.WriteLine("入力された文字列に数字以外の文字が含まれています。")
End If
'結果:入力された文字列は数字のみです。
数値のマイナス符号を許可する
Dim input As String = "-123"
Dim isNumeric As Boolean = Regex.IsMatch(input, "^-?\d+$")
If isNumeric Then
Console.WriteLine("入力された文字列は数字のみです。")
Else
Console.WriteLine("入力された文字列に数字以外の文字が含まれています。")
End If
'結果:入力された文字列は数字のみです。
このコードでは、-?\d+という正規表現パターンを使用しています。
^-?は文字列の先頭にマイナスが0回または1回現れることを示し、
\d+は1回以上数字が続くことを示します。結果はTrueとなります。
広告
数字の小数点のみを許可する正規表現
Dim input As String = "12.34"
Dim isNumeric As Boolean = Regex.IsMatch(input, "^-?\d+(\.\d+)?$")
If isNumeric Then
Console.WriteLine("入力された文字列は数字のみです。")
Else
Console.WriteLine("入力された文字列に数字以外の文字が含まれています。")
End If
'結果:入力された文字列は数字のみです。
小数点がある場合は(\.\d+)?を追加しています。
これは小数点とその後に1回以上の数字が続くパターンが0回または1回現れることを示しています。
広告
小数点とハイフンを含む場合のチェック方法
Dim input As String = "-12.34"
Dim isNumeric As Boolean = Regex.IsMatch(input, "^-?\d+(\.\d+)?$")
If isNumeric Then
Console.WriteLine("入力された文字列は数字のみです。")
Else
Console.WriteLine("入力された文字列に数字以外の文字が含まれています。")
End If
'結果:入力された文字列は数字のみです。
このコードでは、^-?は文字列の先頭にマイナスが0回または1回現れることを示し、
\d+は1回以上数字が続くことを示します。
また、(\.\d+)?は小数点とその後に1回以上の数字が続くパターンが0回または1回現れることを示しています。
まとめ
VB.netで正規表現を使用して、マイナスあり、マイナスなし、小数点ありの場合に文字列が数字のみかどうかをチェックする方法を学びました。
これらのコードを活用することでユーザーからの入力が要件に合致しているかを効果的に確認できます。