使用正则表达式替换子字符串

时间:2017-03-06 15:24:31

标签: java regex

我想用“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);
}

但我不知道我是否走在正确的轨道上。如果我对使用正则表达式有任何帮助,我将不胜感激

2 个答案:

答案 0 :(得分:0)

我不会使用正则表达式。如果它始终采用xx krxx.xx kr格式,我只会使用替换然后连接:

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

答案 1 :(得分:0)

尝试使用以下正则表达式(使用capturing group

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

参见 regex demo / explanation

<强>爪哇

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