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'
tb = r'-?\d+(?:\.\d+)?(?:\s*°(?:\s*c)?)?'
rx = r'{0}(?:\s*-\s*{0})?'.format(tb)
results = re.findall(rx, s)
print(results)
aW1wb3J0IHJlCnMgPSAnVGhpcyBpcyBzb21lIHRlbXBlcmF0dXJlIDMwwrAgYyAtIDUwIMKwIGMgIDLCsGMgIDM0LjUgwrBjIDMwwrBjIC0gNDAgwrBjIGFuZCAiMzDCsCAtIDQwLCBhbmQgLTQ1LjXCsCAtIC01Ni41wrAgcmFuZ2UnIAp0YiA9IHInLT9cZCsoPzpcLlxkKyk/KD86XHMqwrAoPzpccypjKT8pPycKcnggPSByJ3swfSg/OlxzKi1ccyp7MH0pPycuZm9ybWF0KHRiKQpyZXN1bHRzID0gcmUuZmluZGFsbChyeCwgcykKcHJpbnQocmVzdWx0cyk=