2012-05-10 71 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*$