Как гарантировать, что replaceAll заменит целое слово, а не подстроку

У меня есть ввод словаря. Словарь перебирает, чтобы заменитьkey из словаря в тексте. НоreplaceAll функция заменяетsubString также.

Как убедиться, что оно будет соответствовать целому слову (в целом, а не какsubString)

String text= "Synthesis of 1-(2,6-dimethylbenzyl)-1H-indole-6-carboxylic acid [69-3] The titled compound (883 mg) sdvfshd[69-3]3456 as a white solid was prepared"

dictionary= {[69-3]=1-(2,6-dimethylbenzyl)-1H-indole-6-carboxylic acid }

for(Map.Entry<String, String> entry : dictionary.entrySet()){

        text=text.replaceAll("\\b"+Pattern.quote(entry.getKey())+"\\b", entry.getValue());

}