
Reveal the Number

You are given a string of different characters (letters, digits and other symbols). The goal is to "extract" the number from the string: concatenate only digits, number sign and "." (if present) and return the result in number format. If no number can be extracted (no digits in the given string) - return None.
Expected behavior:
- take into consideration the LAST number sign before the FIRST digit;
- take into consideration the FIRST dot in the string (It's guaranteed, that it goes after at least one digit or has at least one digit after). If there is a dot, return as float, otherwise - integer.
Input: String (str).
Output: Integer (int), float (float) or None.
Examples:
assert reveal_num("F0(t}") == 0 assert reveal_num("Utc&g") == None assert reveal_num("-aB%|_-+2ADS.12+3.ADS1.2") == 2.12312 assert reveal_num("-aB%|_+-2ADS.12+3.ADS1.2") == -2.12312