2011-04-14 67 views
1

我必須編寫一個匹配以下模式的正則表達式,它應該匹配十進制值,可以使用下面顯示的格式。什麼正則表達式將十進制值限制在6個小數位?

  1. 100.00
  2. -100.00
  3. 0.6777
  4. 0.45555
  5. 十進制值的正常條目等100 100.25 100 .... 並且還十進制點應限制6位小數位。

這是正則表達式到目前爲止,我已經寫了:

return Regex.IsMatch(value, "^((\\+|-)(\\d*))+((\\.|,)\\d{0,5})?$"); 

目前,如果值是像+100-100的reqular表達式匹配。如果我輸入的值如100,則不會被接受,並且如果我使用.899之類的小數點開始,則IsMatch將返回false。

+0

外觀,使您的第一組可選。 – stevehipwell 2011-04-14 11:50:42

回答

2

正確的表達是

^((\+|-)?(\d*))+((\.|,)\d{0,6})?$ 

您可以在http://www.fileformat.info/tool/regex.htm測試。

+1

它會匹配'+ 1 + 2 + 3.9'。 – khachik 2011-04-14 11:55:24

+0

dictus:當我輸入=表達式返回true時,我使用這個表達式來表示鍵條目。如何避免這個 – Raghav55 2011-04-14 13:04:59

+0

忽略問題是其他部分的代碼 – Raghav55 2011-04-14 13:08:31

0

(+|-)?\d*[.,]?\d{0,6}$和7個侏儒要發佈。

+0

它允許'123.' – hsz 2011-04-14 11:55:26

+0

@hsz:「十進制值的正常輸入,如...」。我認爲'123'是正常的十進制值。 – khachik 2011-04-14 11:56:28

+0

'@ khachik'當然,但它允許一個小數點後正常的小數點後面沒有數字。 – hsz 2011-04-14 11:58:29

2

你可以嘗試使用:

^[+-]?\d*([.,]\d{1,6})?$