code: def _expand_hydrate_(hydrate_pos, formula_string):
      
      hydrate = formula_string[hydrate_pos + 1:]
      hydrate_string = ""
      multiplier = float(re.search(r'^[\d\.]+', hydrate).group())
      element_array = re.findall('[A-Z][^A-Z]*', hydrate)
      for e in element_array:
          occurance_array = re.findall('[0-9][^0-9]*', e)
          if len(occurance_array) == 0:
              occurance_array.append(1)
          for o in occurance_array:
              symbol = re.findall('[A-Z][a-z]*', e)
              total_num = float(o) * multiplier
              if total_num.is_integer():
                  total_num = int(total_num)
              total_str = str(total_num)
              if total_str == "1":
                  total_str = ""
              new_string = symbol[0] + total_str
              hydrate_string += new_string
      return formula_string[:hydrate_pos] + hydrate_string
docs: Handles the expansion of hydrate portions of a chemical formula, and expands out the coefficent to all elements
  
      :param hydrate_pos: the index in the formula_string of the · symbol
      :param formula_string: the unexpanded formula string
      :return: a formula string without the · character with the hydrate portion expanded out