C#で文字列のパターンを検証する際正規表現は強力なツールとなります。
本記事ではC#の正規表現を使用して数字にマイナス符号を許可する方法について解説いたします。
初心者の方でも理解しやすくステップバイステップで説明しますので是非最後までご覧ください。
正規表現の基礎
正規表現は文字列のパターンを記述するための特殊な文字列です。
C#ではSystem.Text.RegularExpressionsネームスペースを用いて正規表現を扱います。
まずは、正の整数を扱う基本的な正規表現を紹介します。
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
// 正の整数のパターン
string positivePattern = @"^\d+$";
// 正規表現オブジェクトの生成
Regex positiveRegex = new Regex(positivePattern);
// テスト用文字列
string testString = "123";
// 正の整数であるかどうかのチェック
bool isPositiveInteger = positiveRegex.IsMatch(testString);
// 結果の表示
Console.WriteLine($"{testString}は正の整数ですか? {isPositiveInteger}");
}
}
この例では、正の整数のパターンを定義しそのパターンにテスト用文字列が一致するかどうかをチェックしています。
以下記事で文字列から数字だけを抽出する方法を紹介しているよ
数値のマイナス符号を許可する正規表現
次に数字にマイナス符号を許可する正規表現を見ていきましょう。
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
// マイナス符号がある数字のパターン
string allowedNegativePattern = @"^-?\d+$";
// 正規表現オブジェクトの生成
Regex allowedNegativeRegex = new Regex(allowedNegativePattern);
// テスト用文字列
string testString = "-456";
// マイナス符号がある数字であるかどうかのチェック
bool isAllowedNegativeNumber = allowedNegativeRegex.IsMatch(testString);
// 結果の表示
Console.WriteLine($"{testString}はマイナス符号がある数字ですか? {isAllowedNegativeNumber}");
}
}
この例では、^-?\d+$という正規表現を使用しています。
ここで、^は文字列の先頭、-?はマイナス符号が0または1回現れること
\d+は1回以上の数字、そして$は文字列の末尾を意味します。
このパターンにテスト用文字列が一致するかどうかをチェックしています。
数字の小数点のみを許可する正規表現
次に小数点のみを許可する正規表現を見ていきましょう。
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
// 小数点のみを許可するパターン
string allowedDotPattern = @"^\d*\.\d+$";
// 正規表現オブジェクトの生成
Regex allowedDotRegex = new Regex(allowedDotPattern);
// テスト用文字列
string testString = "123.456";
// 小数点のみを許可するかどうかのチェック
bool isAllowedDot = allowedDotRegex.IsMatch(testString);
// 結果の表示
Console.WriteLine($"{testString}は小数点のみを許可する数字ですか? {isAllowedDot}");
}
}
この例では、^\d*\.\d+$という正規表現を使用しています。
ここで、^\d*は0回以上の数字、\.は小数点、そして\d+$は1回以上の数字というパターンを示します。
マイナス符号と小数点を許可する正規表現
次にマイナス符号と小数点を許可する正規表現を見ていきましょう。
using System;
using System.Text.RegularExpressions;
class Program
{
static void Main()
{
// マイナス符号と小数点を許可する数字のパターン
string allowedNegativeFloatPattern = @"^-?\d+(\.\d+)?$";
// 正規表現オブジェクトの生成
Regex allowedNegativeFloatRegex = new Regex(allowedNegativeFloatPattern);
// テスト用文字列
string testString = "-456.789";
// マイナス符号と小数点を許可する数字であるかどうかのチェック
bool isAllowedNegativeFloat = allowedNegativeFloatRegex.IsMatch(testString);
// 結果の表示
Console.WriteLine($"{testString}はマイナス符号と小数点を許可する数字ですか? {isAllowedNegativeFloat}");
}
}
この例では、^-?\d+(\.\d+)?$という正規表現を使用しています。
ここで、^-?はマイナス符号が0回または1回現れること、
\d+は1回以上の数字、(\.\d+)?は小数点以下が0回または1回現れることを示します。
まとめ
C#の正規表現を使用して数字にマイナス符号を許可する方法を解説しました。
正確な条件を設定することで柔軟な文字列のバリデーションが可能です。
この手法を利用してさまざまなシナリオで正確な検証を行えるようにしてください。