Группы в строке замены в Java
В строке замены для replaceAll номер
группы записывают как $1, $2
и так далее. Так в результат попадает текст,
который попал в скобки шаблона.
Обернем каждое найденное число в круглые скобки:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "1 23 456 xax";
Pattern pattern = Pattern.compile("(\\d+)");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("($1)");
System.out.println(res);
}
}
Заменим фрагмент x... x, положив цифры из группы между восклицательными знаками:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String txt = "x1x x23x x456x xax";
Pattern pattern = Pattern.compile("x(\\d+)x");
Matcher matcher = pattern.matcher(txt);
String res = matcher.replaceAll("!$1!");
System.out.println(res);
}
}
Дана строка:
public class Main {
public static void main(String[] args) {
String txt = "aa@bb cc@dd";
}
}
Поменяйте местами части до и после "@"
в первой паре букв и выведите результат.