def normalize_scientific_notation(s, ignore_commas=True, verbosity=<NUM_LIT:1>):
s = s.lstrip(charlist.not_digits_nor_sign)<EOL>s = s.rstrip(charlist.not_digits)<EOL>num_strings = rex.scientific_notation_exponent.split(s, maxsplit=<NUM_LIT:2>)<EOL>s = rex.re.sub(r"<STR_LIT>" + "<STR_LIT:U+002C>" * int(not ignore_commas) + r"<STR_LIT>", '<STR_LIT>', num_strings[<NUM_LIT:0>])<EOL>if not s:<EOL><INDENT>return None<EOL><DEDENT>try:<EOL><INDENT>s = str(eval(s.strip().lstrip('<STR_LIT:0>')))<EOL><DEDENT>except (IndexError, ValueError, AttributeError, TypeError):<EOL><INDENT>if verbosity > <NUM_LIT:1>:<EOL><INDENT>print('<STR_LIT>' % repr(s))<EOL><DEDENT>try:<EOL><INDENT>s = str(float(s))<EOL><DEDENT>except (IndexError, ValueError, AttributeError, TypeError):<EOL><INDENT>print('<STR_LIT>' % repr(s))<EOL>s = '<STR_LIT>'<EOL><DEDENT><DEDENT>if len(num_strings) > <NUM_LIT:1>:<EOL><INDENT>if not s:<EOL><INDENT>s = '<STR_LIT:1>'<EOL><DEDENT>s += '<STR_LIT:e>' + rex.re.sub(r'<STR_LIT>', '<STR_LIT>', num_strings[<NUM_LIT:1>])<EOL><DEDENT>if s:<EOL><INDENT>return s<EOL><DEDENT>return None<EOL>
Produce a string convertable with float(s), if possible, fixing some common scientific notations

    Deletes commas and allows addition.
    >>> normalize_scientific_notation(' -123 x 10^-45 ')
    '-123e-45'
    >>> normalize_scientific_notation(' -1+1,234 x 10^-5,678 ')
    '1233e-5678'
    >>> normalize_scientific_notation('$42.42')
    '42.42'