Имеется метод String.replaceAll(String regex, String replacement).
https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html#sum
Допустим мне нужно заменить каждый символ в строке. Следовательно, в regex я записываю ".".
Если мне нужно заменить каждый символ в строке таким же символом дважды ("а" заменяю на "аа", "в" заменяю на "вв" и так далее), то мне нужно прописать в replacement такую комбинацию "$0$0".
Как получилась такая комбинация "$0$0"? По ссылке выше такого нету. Не могу понять.
System.out.println("test".replaceAll(".", "$0$0"));
Тут надо понимать, что при разборе текста регулярным выражением можно использовать группы. У нас случай простой, и групп в принципе нет. Обращаются к группам по индексу, начиная с единицы.
Вот пример работы с группами:
System.out.println("1-2".replaceAll("(\\d)(.*)(\\d)", "$3$2$1"));
Мы переставляем первое и последнее число местами. Результат:
2-1
А что же с $0? Это означает, что берётся полное найденное совпадение (если есть).
System.out.println("41-2".replaceAll("\\d(\\d)(.*)(\\d)", "$3$2$1 \"$0\""));
Результат:
2-1 "41-2"
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости