Содержимое файла:
Это стоит 1 бакс, а вот это - 12 .
Переменная имеет имя file1.
110 - это число.
Какой должен быть вывод:
Это стоит один бакс, а вот это - двенадцать .
Переменная имеет имя file1.
110 - это число.
Какой получаю:
Это стоит один бакс, а вот это - один2 .
Переменная имеет имя file1.
110 - это число.
Как видно, "12" распознается в строке не как одно число "12", а как цифры 1 и 2, из-за этого 1 заменяется, а 2 остается. Не могу понять, почему так происходит, потому что при отдельно проведенном вот таком тесте:
StringBuilder text = new StringBuilder("Это стоит 1 бакс, а вот это - 12 .\nПеременная имеет имя file1.\n110 - это число.");
Pattern pattern = Pattern.compile("\\b1\\b");
Matcher matcher = pattern.matcher(text);
while(matcher.find()){
    System.out.println(matcher.group());
}
В консоль выводилась только 1 единица, а не 2. И если убрать ее вот так "стоит бакс", то никакой цифры вообще не будет выведено. В чем разница между тестовым кодом и тем, что я написал к задаче?