StringBuilder text = new StringBuilder("It's SO very RUDE to shout!"); Matcher m = Pattern.compile("\\b[\\p{Lu}\\p{Lt}]+\\b").matcher(text); int matchPointer = 0;// First search begins at the start of the string while (m.find(matchPointer)) { matchPointer = m.end(); // Next search starts from where this one ended text.replace(m.start(), m.end(), ""+ m.group().toLowerCase() +""); matchPointer += 7; // Account for having added '' and '' } System.out.println(text); ----------------------------------------------------------------------------- Copyright 1997-2024 Jeffrey Friedl