2015-05-07 133 views
2

我需要做的正則表達式只匹配的花車,我得到的是這樣的:正則表達式匹配彩車只

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

但這場比賽也低於 123123132, 5月3日/ 1994年

我只需要要數小數點

+0

你是什麼意思與「浮動只」?小數點是你需要的*嗎? – L3viathan

+0

是的,我需要小數點 – osos

+1

刪除最後一個'?',並根據需要使用'^'和'$'錨點。 – sp00m

回答

2

你的正則表達式匹配是你的目的幾乎是正確的。

它發現123123132,因爲最後一部分是可選的。刪除?解決了這一問題。

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

隨着這一調整,但仍可能會發現字符串的匹配像.12/39/3239,如果你不想通過插入^$這樣的事情發生,插入強制匹配在整個字符串:

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

謝謝,正是我想要的 – osos

0

如何:

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

你可以看到它的工作here

0

這裏是一個正則表達式的處理也存在着指數

[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)? 

Regular expression visualization

Debuggex Demo

另外,你應該迫使孔字符串相匹配,以避免您的日期值內匹配數。

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

這裏的方式是關於使用正則表達式匹配浮點數一個很好的教程:http://www.regular-expressions.info/floatingpoint.html