2017-01-23 51 views
-1

我正在使用Java並嘗試在4位數的日期前設置逗號。例如:在JAVA中找到REGEX(4位數和逗號)前面的逗號

普通字符串:

'埃爾布羅' 範蘭,豪,1964年6月5日,NULL

我想以下輸出(將在1964年前面逗號):

'厄爾尼諾布羅' 範蘭,豪爾赫,1964年6月5日,NULL

這是我所取得的正則表達式: line = line.replaceAll("(\\d{4},)", ",\1");//如果它發現跟一個逗號一個4位數字用逗號,然後將組1替換它(1964,)

如果我運行此我得到下面的輸出:

「厄爾尼諾布羅」範蘭,豪爾赫,6月5日,NULL

它消除了全年1964年我在做什麼錯?

+3

你需要用'$'定義反向引用:'line.replaceAll( 「(\\ d {4})」 ,「,$ 1」)'。也許'replaceAll(「\\ b \\ d {4},」,「,$ 0」)'會更乾淨。 –

+0

謝謝,這工作正常; d –

回答

1

替換字符串中有一個\1,而它應該是$1。這是我能看到的唯一問題。

line.replaceAll("(\\d{4},)", ",$1") 

,或者甚至這一點,如果你想要的東西更簡潔:

replaceAll("\\b\\d{4},", ",$0")