ReplaceAll со всеми символами кроме пятизначного числа

Есть строка

String string = "12345jghdi6h90";               

Как можно убрать из нее все символы кроме пятизначного числа в начале с помощью replaceAll?


Ответы (3 шт):

Автор решения: gunpi
String string = "12345jghdi6h90";

Matcher matcher = Pattern.compile("(\\d{5})([\\d\\w]*)").matcher(string);
matcher.find();
string = string.replaceAll(matcher.group(2),"");
→ Ссылка
Автор решения: TigerTV.ru

Если все равно какое число в начале(значность), то используем следующий вариант:

String s = "12345jghdi6h90";
s = s.replaceAll("^(\\d+)[\\s\\S]*$","$1");

Если в начале должно быть только 5-значное число(к примеру, 6-значное обрезается), то такой вариант

s = s.replaceAll("^(\\d{5})[\\s\\S]*$","$1");

[\\s\\S] - используется вместо ., чтобы обрезать строки с символом \n ("12345jgh\nnni6h90")

→ Ссылка
Автор решения: Qwertiy

Не нужен он тут, всё делается проще:

String string = "12345jghdi6h90";
string = string.substring(0, 5);
→ Ссылка