一度に複数の範囲に対してユーザー入力を検証する複数範囲バリデーターを実装しています。
例
範囲 [1.5, 4] | を定義すると、[6.9, 9.3) | [10, 11]、それは次のように読みます: 1 から 4、または 6 から 9 を含まない。この場合、数値 5、9.3、13 はこの範囲に含まれませんが、数値 2、7、および 10 は含まれます。
式には、次のようにフォーマットされた範囲をできるだけ多く含めることができます。
[ また (
浮動小数点または整数
、
浮動小数点または整数
] また )
式の構文
基本的に、この範囲式は次のもので構成されています。
'[' を含む範囲の開始
'] 範囲の終わりを含む
'(' 範囲の排他的開始
')' 範囲の排他的終了
',' 値区切り
'|' OR ステートメント
ここで、ユーザーが正しい範囲式を記述したことを検証する方法が必要です。パーサーが不適切な形式の式を読み取ると、パーサーは例外をスローします。ユーザーが入力した式を非常にエレガントに検証する正規表現を作成したいと思います。正規表現に関する私の経験はそれほど広くなく、これを作成するのはかなり難しいようです。このような整数、倍精度浮動小数点数、「[」などを含む複雑な正規表現を作成する方法について、いくつかのガイダンスが欲しいです。
正規表現はプラットフォームに依存しませんが、私は .NET を使用しています。