Strips special characters, duplicate spaces and post/pre-ceeding spaces.
  Strip on single spaces, periods, hyphens and underscores is conditional on
  if stripAll is set

  Parameters
  ----------
    string : string
      String to strip special characters from.

    stripAll : boolean [optional: default = False]
      If set will also strip single spaces, periods, hyphens and underscores.

  Returns
  ----------
    string
      Resulting string with special characters removed.

def StripSpecialCharacters(string, stripAll = False):
  """
  Strips special characters, duplicate spaces and post/pre-ceeding spaces.
  Strip on single spaces, periods, hyphens and underscores is conditional on
  if stripAll is set

  Parameters
  ----------
    string : string
      String to strip special characters from.

    stripAll : boolean [optional: default = False]
      If set will also strip single spaces, periods, hyphens and underscores.

  Returns
  ----------
    string
      Resulting string with special characters removed.
  """
  goodlogging.Log.Info("UTIL", "Stripping any special characters from {0}".format(string), verbosity=goodlogging.Verbosity.MINIMAL)
  string = string.strip()
  string = re.sub('[&]', 'and', string)
  string = re.sub(r'[@#$%^&*{};:,/<>?\\|`~=+±§£]', '', string)
  string = re.sub('\s\s+', ' ', string)

  if stripAll:
    string = re.sub('[_.-]', '', string)
    string = re.sub('\s', '', string)

  goodlogging.Log.Info("UTIL", "New string is: {0}".format(string), verbosity=goodlogging.Verbosity.MINIMAL)
  return string