import re
s = 'This is some temperature 30° c - 50 ° c 2°c 34.5 °c 30°c - 40 °c and "30° - 40, and -45.5° - -56.5° range 30c - 50 °c" or 30c - 40'
tb = r'-?\d+(?:\.\d+)?(?:\s*°)?(?:\s*c)?'
rx = r'{0}(?:\s*-\s*{0})?'.format(tb)
results = re.findall(rx, s)
print(results)
aW1wb3J0IHJlCnMgPSAnVGhpcyBpcyBzb21lIHRlbXBlcmF0dXJlIDMwwrAgYyAtIDUwIMKwIGMgIDLCsGMgIDM0LjUgwrBjIDMwwrBjIC0gNDAgwrBjIGFuZCAiMzDCsCAtIDQwLCBhbmQgLTQ1LjXCsCAtIC01Ni41wrAgcmFuZ2UgMzBjIC0gNTAgwrBjIiBvciAzMGMgLSA0MCcgCnRiID0gcictP1xkKyg/OlwuXGQrKT8oPzpccyrCsCk/KD86XHMqYyk/JwpyeCA9IHInezB9KD86XHMqLVxzKnswfSk/Jy5mb3JtYXQodGIpCnJlc3VsdHMgPSByZS5maW5kYWxsKHJ4LCBzKQpwcmludChyZXN1bHRzKQ==
['30° c - 50 ° c', '2°c', '34.5 °c', '30°c - 40 °c', '30° - 40', '-45.5° - -56.5°', '30c - 50 °c', '30c - 40']