code: def clean_surface(surface, span):
      
      surface = surface.replace('-', ' ')
      no_start = ['and', ' ']
      no_end = [' and', ' ']
  
      found = True
      while found:
          found = False
          for word in no_start:
              if surface.lower().startswith(word):
                  surface = surface[len(word):]
                  span = (span[0] + len(word), span[1])
                  found = True
          for word in no_end:
              if surface.lower().endswith(word):
                  surface = surface[:-len(word)]
                  span = (span[0], span[1] - len(word))
                  found = True
  
      if not surface:
          return None, None
  
      split = surface.lower().split()
      if split[0] in ['one', 'a', 'an'] and len(split) > 1 and split[1] in \
              r.UNITS + r.TENS:
          span = (span[0] + len(surface.split()[0]) + 1, span[1])
          surface = ' '.join(surface.split()[1:])
  
      return surface, span
docs: Remove spurious characters from a quantity's surface.