2015-11-06 6 views
0

У меня есть текстовыйСтрока замены Regex Состояние

Привет всем, меня зовут Ke-

вин, я родился в Индонезии 20-

01-1990. Приятно познакомиться.

Так как я могу заменить текст

Привет всем, меня зовут Кевин, я родился в Индонезии 20-01-1990. Приятно познакомиться.

Я попытался с помощью String string = string.replace("-\n" , "");

Привет всем, меня зовут Кевин, я родился в Индонезии 2001-1990. Приятно познакомиться.

так как положить другой случай в замене строки? между алфавитом до «-» и числом.

+2

['- \ n +'] (https://regex101.com/r/yC4eF2/1) – Tushar

+0

Возможно, 'String string = string.replaceAll (" - \ n + (?! \\ d) "," ") .replaceAll (" - \ n + "," - ");'. –

+0

Я думаю, что любой API, сгенерированный исходной строкой, как-то сломан: добавление '-' должно всегда выполняться, чтобы вторая строка технически закончилась символом' 20 - '. – manouti

ответ

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

Строка результата = string.replaceAll ("-", "") replaceAll. ("\ Г \ п", "");