字符串替换正则表达式条件

时间:2015-11-06 08:34:32

标签: java regex string replacewith

我有一个文字

  

大家好,我叫柯 -

     

vin,我出生在印度尼西亚20 -

     

01-1990。很高兴见到你。

那么如何将文本替换为

  大家好,我叫Kevin,我出生于印度尼西亚20-01-1990。很高兴见到你。

我已尝试使用String string = string.replace("-\n" , "");

  

各位大家好,我的名字是凯文,我出生于印度尼西亚2001-1990。很高兴见到你。

那么如何将不同的情况放在替换字符串中?之间的字母之间" - "和数字。

2 个答案:

答案 0 :(得分:2)

当连字符前面有数字时,您可以使用capturing group来匹配数字和连字符,并使用$1作为替换:

(?:(\\d-)|-)
  • 捕获数字后跟连字符
  • 或匹配连字符(未捕获)

<强>代码

String string = "Hello everyone, my name is Ke-\nvin, I was born in Indonesia 20-\n01-1990. Nice to meet you.";
String result = string.replaceAll("(?:(\\d-)|-)\\n+" , "$1");

System.out.println(result);

<强>输出

Hello everyone, my name is Kevin, I was born in Indonesia 20-01-1990. Nice to meet you.

答案 1 :(得分:-1)

String result = string.replaceAll(“ - ”,“”)。replaceAll(“\ r \ n”,“”);