input: Write a function to clean a string of HTML tags and return the cleaned string. If the input string is empty or contains no HTML tags, it should return the original string.
  import re
  
  # Clean a string of HTML tags 
  def clean_html_tags(str):
      if not str or not re.search("<.*?>", str):
          return str
      clean_str = re.sub("<.*?>", "", str)
      return clean_str
  
  assert clean_html_tags("<p>This is a <b>test</b> string</p>") == "This is a test string"
  assert clean_html_tags("<h1>Heading</h1>") == "Heading"
  assert clean_html_tags("No HTML here") == "No HTML here"
  assert clean_html_tags("") == ""
  assert clean_html_tags("<a href='example.com'>Link</a>") == "Link"
output: def clean_html_tags(str):
      if not str or not re.search("<.*?>", str):
          return str
      clean_str = re.sub("<.*?>", "", str)
      return clean_str