2017-01-23 7 views
-1

で見つけREGEX(4桁の数字とカンマ)の前に、私はJavaで作業し、4桁の日付の前にコンマを設定しようとしています。例:場所コンマはJAVA

通常の文字列:

'エルBurroの' ヴァン・ランキン、ホルヘ、1964年6月5日、NULL

Iたく次の出力(1964の前にコンマを置くこと):

'エルBurroの' ヴァン・ランキン、ホルヘ、1964年6月5日、NULL

これは私が作った正規表現である:それは私がこの私を実行する場合は、コンマに続く4桁の番号がコンマし、グループ1(1964)

に置き換える見つけた場合 line = line.replaceAll("(\\d{4},)", ",\1");//

「エルBurroの」ヴァン・ランキン、ホルヘ、6月5日、NULL

それは私が間違っているのは何年全体の1964年を削除します。次の出力を得ますか?それは$1する必要があり、一方、

+3

をあなたは '$'と後方参照を定義する必要があります: 'line.replaceAllは( "(\\ D {4}、)" 、 "、$ 1") 'となります。たぶん 'replaceAll(" \\ b \\ d {4}、 "、"、$ 0 ")'はもっときれいになります。 –

+0

ありがとう、それはうまく動作; d –

答えて

1

置き換える文字列は、その中に\1を持っています。それは私が見ることができる唯一の問題です。でも

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

または多分これあなたが滑らかな印象に何かしたい場合:

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