[英]What's a good regular expression for real numbers in Java?
Java中實數的正則表達式是什么?
我創建了正則表達式([-]?[\\\\d]*\\\\.[\\\\d]*)
並根據以下預期輸出對其進行了測試:
in out works?
--------------------------------------
qwerty34.34abcd 34.34 yes
qwe-34.34.34abcd -34.34 no
+17.-9abc 17.0 yes
-.abc0 0.0 no
我必須准確地了解列(out)。 請提供通過所有這些測試的正則表達式。
請嘗試以下方法:
((\+|-)?([0-9]+)(\.[0-9]+)?)|((\+|-)?\.?[0-9]+)
這將匹配包含或不包含符號的實數(包括整數)(在小數點之前有或沒有數字)。
^[+-]?(?:\d+\.?\d*|\d*\.\d+)$
?
用於制作+
或-
選項 ?:
適用於非捕獲組 \\
是一個逃脫字符 正則表達式必須滿足以下要求:
[+-]?
。 [0-9]*
。 [.]
以避免反斜視炎。 [0-9]*
。 [0-9]+
,它可以使用交替。 這種模式是否有效: [+-]?([0-9]*[.]?[0-9]+|[0-9]+[.]?[0-9]*)
? 然而,我擔心災難性的回溯。
下一個怎么樣:
^-?(([1-9][0-9]*)|(0))(?:\.[0-9]+)?$
或者如果你想允許“+”符號,則為下一個:
^(-|\+)?(([1-9][0-9]*)|(0))(?:\.[0-9]+)?$
順便說一句, 這是一個很好的網站,用於測試和共享正則表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.