Report abuse

def ampersands(string):
  """Allow terminated entities but escape wild ampersands."""
  splits = string.split('&')
  if len(splits) == 1:
    return string
  result = splits[0]
  for split in splits[1:]:
    if split:
      for char in split:
        if char.isspace():
          result += "&" + split; break
        elif char == ';':
          result += "&" + split; break
      else: # end of split
        result += "&" + split
    else: # empty split
      result += "&"
  return result