2012-12-03 79 views
7

我想要一個正則表達式,它只接受0到9和負號的浮點數。接受浮點數和減號( - )的正則表達式

請幫忙。

+0

那你試試?你有什麼麻煩? – SLaks

+0

您使用的是哪一個小數分隔符:',','.'或者其中之一? –

+0

[Regex for floating point?]的可能重複(http://stackoverflow.com/questions/9186780/regex-for-floating-point) –

回答

11

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

  • ^ - 串的開始
  • [-+]? - 0或1符號指示符
  • [0-9]* - 0以上整數
  • \. - 字符..在正則表達式用來表示「任何字符」)
  • [0-9]+ - 1以上的整數
  • $ - 字符串的結尾

如果您是不是使用逗號作爲小數點分隔符使用,代替\.

如果您同時使用/或者,你可以使用[.,]

+0

這隻允許一個句點的小數點分隔符,而不是任何字符。擺脫反斜槓意思是「任何角色」。但是,那對於浮點數不會有效。最後一句應該提到'[。,]'。 – rmaddy

+0

@rmaddy我認爲你的兩條陳述都是錯誤的。我打算只允許。作爲原始字符串中的小數點分隔符,這就是爲什麼我添加了額外的句子。最後一句與[。,]或[\。,]至少在http://regexpal.com –

+0

一起使用的任何正則表達式,您只需將'[。,]',而不是' [\。,]'。但是我沒有用過任何可能的正則表達式引擎。當我評論我時,我一定誤解了某些內容,因爲當我現在看到你的答案時,我的評論似乎並不適用。自從我評論以來,必須進行一些編輯。 – rmaddy

0

嘗試^[-+]?[0-9]*[.,]?[0-9]+$

這個正則表達式將匹配一個可選符號,即後跟零個或多個數字後跟一個點和一個或多個數字(帶有可選整數部分的浮點數),或後跟一個或多個數字(一個整數)。

來源:http://www.regular-expressions.info/floatingpoint.html - 改變以逗號作爲小數分隔工作

+0

這不適用於使用週期以外的小數點分隔符的語言環境。 – rmaddy

+0

謝謝,編輯。 –

+0

這當前允許任何字符用作分隔符。 '\ .' –