2012-05-10 39 views
-1

我正在寻找验证空间中的一个点作为输入,在.NET DataGridView中。输入到DataGridViewTextBoxCell应该在这个形式:上述3D位置的正则表达式

[1.0, 1.0, 1.0] 

1.0表示X,Y,Z轴(它也可以是0.1或只是.1)。它还必须包含打开和关闭的括号。
由于它是一个位置,它可能是负值或正值,并且在小数点后有n个位置。

+0

我不是.NET的familair,但没有'is_number'或'is_float'函数吗?你只想检查它是否是浮动的,不是吗? –

+0

在.Net中有一个函数,用于测试一个字符串是否可以被解析为一个数字。 float.TryParse在float的情况下,但是整数,double和其他基类型具有相同的功能。但是,我的猜测是,他正在检查格式时一次匹配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*$