Всем привет, еще только изучаю язык, строго не судите такой вопрос: все номера телефонов в тексте записанные в формате +375XXYYYYYYY с помощью regex заменить на +375(XX)YYY-YY-YY саму регулярку написать проблем нет, вопрос как заменить. matcher.replaceAll очевидно не работает по такому принципу
package Regex;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Phone {
public static void main(String[] args) {
Pattern p = Pattern.compile("[+]375(\\d{2})(\\d{3})(\\d{2})(\\d{2})");
String str = "+12315125 +375442345295 1235 +375257621398 ";
Matcher matcher = p.matcher(str);
while (matcher.find()) {
//???
System.out.println(matcher.replaceAll([+]375\((\d{2})\)(\d{3})\-(\d{2})\-(\d{2}));
}
}
}
String s = "+375125522214 +12315125 +375442345295 1235 +375257621398";
System.out.println(s.replaceAll("\\+375(\\d{2})(\\d{3})(\\d{2})(\\d{2})","+375($1)$2-$3-$4"));
Вывод: +375(12)552-22-14 +12315125 +375(44)234-52-95 1235 +375(25)762-13-98.
Через Matcher и Pattern тоже можно:
Pattern p = Pattern.compile("[+]375(\\d{2})(\\d{3})(\\d{2})(\\d{2})");
String str = "+375125522214 +12315125 +375442345295 1235 +375257621398";
Matcher matcher = p.matcher(str);
System.out.println(matcher.replaceAll("+375($1)$2-$3-$4"));
Вывод: +375(12)552-22-14 +12315125 +375(44)234-52-95 1235 +375(25)762-13-98.
Через $1 указывается ссылка на первую группу (выражение в скобках), выражение из этой группы подставляется на место $1.
Продвижение своими сайтами как стратегия роста и независимости