Cómo garantizar que replaceAll reemplazará una palabra completa y no una subcadena
Tengo una entrada de diccionario. El diccionario se repite para reemplazar elkey
del diccionario en el texto. PeroreplaceAll
la función reemplaza elsubString
también.
Cómo asegurarse de que coincida con la palabra completa (como un todo y no como unsubString
)
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());
}