我有以下的正則表達式:(?<=\.\d+?)0+(?=\D|$)
我跑這對包含以下字符串:SVC~NU^0270~313.3~329.18~~10~~6.00:
正則表達式問題:爲什麼不匹配?
當它運行時,它匹配的6.00(正確),這我的邏輯,然後修剪一個零變成6.0 。正則表達式然後再次運行(或應該),但沒有拿起6.0。
我決不是一個正則表達式的專家,但我對我的表達的理解是,它正在尋找一個或多個可選(所以,真正爲零或更多)數字的小數點之前的一個或多個零是然後是任何非數字字符或換行符。假設解釋是正確的,我不明白爲什麼它不會匹配第二遍。對於這個問題,我不知道爲什麼我的Regex.Replace
不匹配第一遍的完整6.00並刪除兩個尾隨零...
有什麼建議嗎?
這正則表達式是尋找最後的零,如果它發現它,它就會刪除它(因此比賽) - 如果沒有第二個「0」無法找到匹配,因此失敗... [仔細看看你]找到補救辦法 - 你需要什麼來恢復? – Glycerine 2010-05-17 18:31:46
第二個想法,@Glycerine是對的:目前還不清楚你期望的最終結果。我的答案會「修復」表達式,但結果會很奇怪(至少對我來說),因爲它會去掉所有尾隨的零,只留下'6.'。 – 2010-05-17 18:40:39
最終,如果在它後面沒有數字,我確實希望小數點被刪除,但是我相對有信心能夠做到這一點 - 我無法弄清楚爲什麼單個0不匹配。謝謝。 – AllenG 2010-05-17 18:45:19