Use
re.findall(r'\((\d+\.?\d*),(\d+\.?\d*),(\d+\.?\d*)\)', test_str)
See Python proof:
import re
test_str = r"#76=CARTESIAN_POINT('',(0.,0.,0.));\n#77=CARTESIAN_POINT('',(0.07,0.0999999999999997,1.));\n#78=CARTESIAN_POINT('',(0.32,0.0999999999999997,1.));\n#79=CARTESIAN_POINT('',(0.07,0.0999999999999997,0.));\n#80=CARTESIAN_POINT('',(0.32,0.0999999999999997,0.));\n#81=CARTESIAN_POINT('',(0.07,0.0999999999999997,1.));\n#82=CARTESIAN_POINT('',(0.07,0.0999999999999997,1.));\n#83=CARTESIAN_POINT('',(0.07,0.0999999999999997,0.));"
print(re.findall(r'\((\d+\.?\d*),(\d+\.?\d*),(\d+\.?\d*)\)', test_str))
Results:
[('0.', '0.', '0.'), ('0.07', '0.0999999999999997', '1.'), ('0.32', '0.0999999999999997', '1.'), ('0.07', '0.0999999999999997', '0.'), ('0.32', '0.0999999999999997', '0.'), ('0.07', '0.0999999999999997', '1.'), ('0.07', '0.0999999999999997', '1.'), ('0.07', '0.0999999999999997', '0.')]
See regex proof.
EXPLANATION
--------------------------------------------------------------------------------
\( '('
--------------------------------------------------------------------------------
( group and capture to \1:
--------------------------------------------------------------------------------
\d+ digits (0-9) (1 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
\.? '.' (optional (matching the most amount
possible))
--------------------------------------------------------------------------------
\d* digits (0-9) (0 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
) end of \1
--------------------------------------------------------------------------------
, ','
--------------------------------------------------------------------------------
( group and capture to \2:
--------------------------------------------------------------------------------
\d+ digits (0-9) (1 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
\.? '.' (optional (matching the most amount
possible))
--------------------------------------------------------------------------------
\d* digits (0-9) (0 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
) end of \2
--------------------------------------------------------------------------------
, ','
--------------------------------------------------------------------------------
( group and capture to \3:
--------------------------------------------------------------------------------
\d+ digits (0-9) (1 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
\.? '.' (optional (matching the most amount
possible))
--------------------------------------------------------------------------------
\d* digits (0-9) (0 or more times (matching
the most amount possible))
--------------------------------------------------------------------------------
) end of \3
--------------------------------------------------------------------------------
\) ')'