code: def check_apartment_number(self, token):
          
          apartment_regexes = [r'#\w+ & \w+', '#\w+ rm \w+', "#\w+-\w", r'apt #{0,1}\w+', r'apartment #{0,1}\w+', r'#\w+',
                               r'# \w+', r'rm \w+', r'unit #?\w+', r'units #?\w+', r'- #{0,1}\w+', r'no\s?\d+\w*',
                               r'style\s\w{1,2}', r'\d{1,4}/\d{1,4}', r'\d{1,4}', r'\w{1,2}']
          for regex in apartment_regexes:
              if re.match(regex, token.lower()):
                  self.apartment = self._clean(token)
                  return True
              #        if self.apartment is None and re.match(apartment_regex_number, token.lower()):
              ##            print "Apt regex"
              #            self.apartment = token
              #            return True
              ## If we come on apt or apartment and already have an apartment number, add apt or apartment to the front
          if self.apartment and token.lower() in ['apt', 'apartment']:
          #            print "Apt in a_n"
              self.apartment = self._clean(token + ' ' + self.apartment)
              return True
  
          if not self.street_suffix and not self.street and not self.apartment:
          #            print "Searching for unmatched term: ", token, token.lower(),
              if re.match(r'\d?\w?', token.lower()):
                  self.apartment = self._clean(token)
                  return True
          return False
docs: Finds apartment, unit, #, etc, regardless of spot in string. This needs to come after everything else has been ruled out,
          because it has a lot of false positives.