import re
regex = re.compile(r"\s*\[\s*\[\s*\[\s*([+-]?\d+(\.\d*)?([EeDd][+-]?\d+)?)\s*,\s*([+-]?\d+(\.\d*)?([EeDd][+-]?\d+)?)\s*\]\s*,\s*\[\s*([+-]?\d+(\.\d*)?([EeDd][+-]?\d+)?)\s*,\s*([+-]?\d+(\.\d*)?([EeDd][+-]?\d+)?)\s*\]\s*,\s*\[\s*([+-]?\d+(\.\d*)?([EeDd][+-]?\d+)?)\s*,\s*([+-]?\d+(\.\d*)?([EeDd][+-]?\d+)?)\s*\]\s*\]\s*\]\s*", flags=re.MULTILINE)
test_str = ("[[[5,3],[2,8],[6,-3]]]\n\n"
"[ [ [ 5.23 , 3.42 ] , [ 2. , 8.17 ] , [ 6 , -3 ] ] ] \n\n"
"[[\n"
" [ 5, 3],\n"
" [ 2, 8.43],\n"
" [ -6.18,-3]\n"
"]]\n\n"
"[\n"
" [\n"
" [\n"
" 5,\n"
" 3.141592653\n"
" ],\n"
" [\n"
" 2.718281828,\n"
" 8\n"
" ],\n"
" [ 0.618,\n"
" -35.16e-17\n"
" ]\n"
" ]\n"
"]\n\n")
subst = "{\"\\1,\\4\",\"\\7,\\10\",\"\\13,\\16\"}\\n"
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