我需要在一個數字,如刪除訓練Zero的: 9.2500 = 9.25 由於一前一後由@Avinash拉吉我發現這一點:使用正則表達式我怎麼去除尾隨零和小數此外,如果需要
^(\d+\.\d*?[1-9])0+$
它適用於該應用程序。然而,在某些情況下,我公司擁有一批像11.0000和上述正則表達式返回:
11.0
我需要返回:
11
我不知道如何刪除小數和零時,有是不是需要?我花了一些時間試圖弄清楚,但我很難過。
我需要在一個數字,如刪除訓練Zero的: 9.2500 = 9.25 由於一前一後由@Avinash拉吉我發現這一點:使用正則表達式我怎麼去除尾隨零和小數此外,如果需要
^(\d+\.\d*?[1-9])0+$
它適用於該應用程序。然而,在某些情況下,我公司擁有一批像11.0000和上述正則表達式返回:
11.0
我需要返回:
11
我不知道如何刪除小數和零時,有是不是需要?我花了一些時間試圖弄清楚,但我很難過。
^(\d+(?:\.\d*?[1-9](?=0|\b))?)\.?0*$
演示here。
解釋
^ //Beginning of line
( //Start collecting our group
\d+ //All digits before decimal
(?: //START-Non collecting group
\. //Decimal point
\d*? //It should actually be [0-9]
[1-9] //Last significant digit after decimal
(?=0|\b) //Either should be followed by zero or END OF WORD
)? //END-Non collecting group
//The non-capturing group after decimal is optional
) //End collecting our group
\.? //Optional decimal (decimal collected if it wasn't used earlier)
0* //All the remaining zeros no + as all digits might be significant that is no ending zero
$ //End of line.
完美!謝謝!!!! – BobTucker
試試這個
^\d*\.[1-9]*([0]+)*$
說明
^ beginning of the term
\d* digits from 0-9 those can be any number (can be 0 number or more)
\. escaping the .
[1-9]* numbers from 1 to 9 (can be 0 number or more)
([0]+) capturing all 0s in group1
$ end of the term
,你可以* *用正則表達式做到這一點,但這並不意味着你應該* *),其編程你在用什麼語言? – alfasin
@alfasin我正在使用自動化應用程序。我唯一的選擇是清理正則表達式。如果可以使用java,我會完成。 – BobTucker
鮑勃,你要求一個正則表達式可以完成兩個不同的任務(你能明白爲什麼?)。另一個想法:運行一次,然後運行另一個正則表達式來更新數字格式:'n.0'到'n' – alfasin