2012-05-10 12 views
-1

私は、空間内の点を入力として検証するために、.NETのDataGridViewを探しています。 DataGridViewTextBoxCellへの入力がこの形態であるべきである。3Dポジションの正規表現

[1.0, 1.0, 1.0] 

上記1.0は、X、Y、Z軸(それはまた0.1または単に.1とすることができる)を表します。また、開いているか閉じているかっこを含む必要があります。
ポジションであるため、負数または正数で、小数点以下n桁の数を指定できます。

+0

私はfamilair .NETではありませんが、 'is_number'または' is_float'関数はありませんか?あなたは浮動小数点であるかどうかだけチェックしたいですね。 .Netの –

+0

には、文字列を数値に解析できるかどうかをテストする関数があります。 float.TryParseの場合はfloatですが、整数、倍精度などの基本型は同じ機能を持ちます。しかし、私の推測では、フォーマットをチェックしながら同時に3つの座標に一致するように探しているということです。私が知っている最良の方法はRegExを使うことです。 –

答えて

0

あなたは正規表現を探しているなら、それはそのようなものでなければなりません:

^ // The string should start with the left bracer 
\[ // left bracer 

([-+]?[0-9]*\.?[0-9]+), // first float value followed by a virgule, this is matched 
([-+]?[0-9]*\.?[0-9]+), // second float value followed by a virgule, this is matched 
([-+]?[0-9]*\.?[0-9]+) // third float value, this is matched 

\] // right bracer 
$ // The string should end with the right bracer 

コメントなしこれはあなたを与える:

^\[([-+]?[0-9]*\.?[0-9]+),([-+]?[0-9]*\.?[0-9]+),([-+]?[0-9]*\.?[0-9]+)\]$ 

あなたが正規表現にスペースを無視する場合のことができます。各要素の間に\ s *を追加します。

^\s*\[\s*([-+]?[0-9]*\.?[0-9]+)\s*,\s*([-+]?[0-9]*\.?[0-9]+)\s*,\s*([-+]?[0-9]*\.?[0-9]+)\s*\]\s*$