我需要正則表達式來驗證正或負雙。我嘗試了以下正則表達式:正則表達式在java中爲正或負雙
^[-+]?\\d+(\\.{0,1}(\\d+?))?$
但它允許前導0(例如01和00)。我如何修改我的正則表達式,使其不允許前導0?
我需要正則表達式來驗證正或負雙。我嘗試了以下正則表達式:正則表達式在java中爲正或負雙
^[-+]?\\d+(\\.{0,1}(\\d+?))?$
但它允許前導0(例如01和00)。我如何修改我的正則表達式,使其不允許前導0?
下面是一個例子(.NET語法,應在爪哇行太):
^[+-]?(([1-9]\d*)|0)(\.\d+)?
基本上,這有一個可選的+或 - 符號,隨後是0或1的數 - 9隨後任意數量的數字。或者,它可以包含一個小數點,後跟一個或多個數字。
這個正則表達式的最重要的事情(這就是解決你的問題)是它的附加限制,即多位數不能以0開始 - 你可以有東西,等於正是 0,但你不能有像000010.1或0000.0或類似的東西。類似於0或0.0或100.1就可以。
這裏是另一種選擇,它處理的指數,如果你希望他們:
^[+-]?([1-9][0-9]*|0)(\.[0-9]+)?((e|E)[+-]?[0-9]+)?$
我剛纔意識到,這本質上是相同的,與指數除了@EJoshuaS」。
這裏是一個鏈接以驗證它:
您可以使用:'^ [ - +] [1-9] \ d *?(?:?:\ \ d +)?$ ' – anubhava
爲什麼在try catch塊中不使用Double.parseDouble(myString)? – jeanr
你找不到,謝謝你。 anubhava – psilos