2012-01-25 129 views
-1

當我由於某種原因輸入100而不是100.0時,這個正則表達式不起作用。正則表達式不工作

^(?!0*(.0+)?$)(\d+|\d*\.\d+)$ 

任何想法爲什麼會發生這種情況?

+0

您使用哪個程序或類來評估這個正則表達式? – Sjoerd

+1

什麼是支持承認? –

+0

我假設OP想要得到任何正數,除了代表零的東西。 – Lucero

回答

3

這是你的負先行從而導致問題:

0*(.0+)?$ 

在這裏的點表示任何人物 - 你想逃避它:

^(?!0*(\.0+)?$)(\d+|\d*\.\d+)$ 

甚至以積極的前瞻簡單:

^(?=.*?[1-9])(\d+|\d*\.\d+)$ 
+0

so,sorry,那麼它會如何看待最終的正則表達式呢?沒有那個點一樣嗎? –

+0

@Dave,用完整的正則表達式編輯。 – Lucero