import re
regex = re.compile(r"^(-)|[.,](?=[^.,\n]*[.,](?!$))|[,.]+$|[^0-9.,\n]+", flags=re.MULTILINE)
test_str = ("10.23.45.\n"
"10.23.45\n"
"123 -> \n"
"123\n"
"123.45 -> \n"
"123.45\n"
"123,45 -> \n"
"123,45\n"
"-123 -> \n"
"-123\n"
"-123.45 -> \n"
"-123.45\n"
"-123,45 ->\n"
"-123,45\n"
"--123.45 ->\n"
"-123.45\n"
"--123,45 -> \n"
"-123,45\n"
"a -> \n\n"
"-a -> \n"
"-\n"
"a123 -> \n"
"123\n"
"-a123 -> \n"
"-123\n"
"a123.45 -> \n"
"123.45\n"
"-a123.45 ->\n"
"-123.45\n"
"a123.b45 -> \n"
"123.45\n"
"-a123.b45 -> \n"
"-123.45\n"
"123.-34 -> \n"
"123.34\n"
"-123.-34 -> \n"
"-123.34\n"
"--123.-34 -> \n"
"-123.34")
subst = "$1"
result = regex.sub(subst, test_str)
if result:
print(result)
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Python, please visit: https://docs.python.org/3/library/re.html