code: @NullSafe
    public static String replaceAll(String value, String pattern, String replacement) {
  
      if (!ObjectUtils.areAnyNull(value, pattern, replacement)) {
        value = Pattern.compile(pattern).matcher(value).replaceAll(replacement);
      }
  
      return value;
    }
docs: Null-safe method to replace the specified pattern in the given {@link String} value with
  the replacement {@link String}.
  
  For example, given the following String...
  
  <code>
  "///absolute//path/to/////some////file.ext"
  </code>
  
  When 'pattern' is "/+" and 'replacement' is "/", the resulting, returned String value will be...
  
  <code>
  "/absolute/path/to/some/file.ext"
  </code>
  
  @param value the {@link String} value on which to perform the pattern search and replace operation.
  @param pattern the pattern of characters in the {@link String} value to replace.
  @param replacement the replacement {@link String} used to replace all occurrences of the pattern of characters.
  @return a modified {@link String} value with the pattern of characters replaced with the replacement.
  Returns the original {@link String} value if
  @see java.util.regex.Pattern#compile(String)
  @see java.util.regex.Pattern#matcher(CharSequence)
  @see java.util.regex.Matcher#replaceAll(String)