input: Write a function to determine if it is possible to get a complex number represented as a string in the form "a + bi" by parsing the given complex number representation. The function should return True if the parsing is successful and resulted in a valid complex number, otherwise return False.
  
  assert parse_complex_number("3 + 4i") == True
  assert parse_complex_number("-5 + 3i") == True
  assert parse_complex_number("2.5 - 7.8i") == True
  assert parse_complex_number("0 + 0i") == True
  assert parse_complex_number("invalid") == False
  assert parse_complex_number("3 + 4") == False
  assert parse_complex_number("i + 2") == False
  assert parse_complex_number("") == False
output: def parse_complex_number(s):
      import re
      pattern = re.compile(r'^(-?\d*\.?\d*)\s*\+\s*(-?\d*\.?\d*)i$')
      match = pattern.match(s)
      if match:
          real_part = match.group(1)
          imag_part = match.group(2)
          if real_part or imag_part:
              return True
      return False