import re
def parse(text):
if not text:
return None
match = re.search(r"([0-9]+(?:\.[0-9]+)?)\s*mm\b", text.lower())
if match:
return float(match.group(1))
return text
tests = ['12.3 mm', '12.3mm', '32.0 mm / 1.259"', '32.0mm / 1.259"']
for s in tests:
print( parse(s) )
aW1wb3J0IHJlCgpkZWYgcGFyc2UodGV4dCk6CiAgICBpZiBub3QgdGV4dDoKICAgICAgICByZXR1cm4gTm9uZQogICAgbWF0Y2ggPSByZS5zZWFyY2gociIoWzAtOV0rKD86XC5bMC05XSspPylccyptbVxiIiwgdGV4dC5sb3dlcigpKQogICAgaWYgbWF0Y2g6CiAgICAJcmV0dXJuIGZsb2F0KG1hdGNoLmdyb3VwKDEpKQogICAgcmV0dXJuIHRleHQKCnRlc3RzID0gWycxMi4zIG1tJywgJzEyLjNtbScsICczMi4wIG1tIC8gMS4yNTkiJywgJzMyLjBtbSAvIDEuMjU5IiddCmZvciBzIGluIHRlc3RzOiAKICAgIHByaW50KCBwYXJzZShzKSAp