2017-03-06 27 views
1

我想用「SEK xx」/「SEK xx.xx」替換模式爲「xx kr」或「xx.xx kr」(其中x爲數字)的子字符串。使用正則表達式替換子字符串

例如:此產品成本34.55 KR =>該商品價格爲SEK 34.55

我已經開始在我的類中的方法:

/* Uses regex pattern to replace this pattern*/ 
private void replacePatternInLine(String line){ 

    line = line.replaceAll("regex", "SEK"); 
    System.out.println(line); 
} 

,但我不知道如果我在正確的軌道上。如果我有什麼正則表達式的幫助,我將不勝感激

回答

0

我不會使用這個正則表達式。如果它總是在格式xx krxx.xx kr我只想用替換後再拼接:

line.replaceAll(" kr", ""); 
line = "SEK " + line; 
+0

我不是很清楚maby,但我從文件一次讀一行。所以格式是一個子字符串。 – Fanny

0

具有以下正則表達式嘗試(使用capturing group

([\d.]+)\s*kr 

看到regex demo/explanation

Java

private void replacePatternInLine(String line){ 
    line = line.replaceAll("([\\d.]+)\\s*kr", "SEK $1"); 
    System.out.println(line); 
} 
+0

謝謝你!這是一個很好的演示 – Fanny

+0

如果在數字後有多個空格,並且想要替換它,該怎麼辦?無論如何要忽略多個空白是? – Fanny

+0

或當然,你怎麼接受? – Fanny