import re
strs = ["[1,12:12] call basic_while1() Error Code: 1046. No database selected",
"[1,12:12] call add() Asdfjgg Error Code: 1046. No database aa selected",
"[1,12:12] call add()",
"[1,12:12]",
"Error Code: 1046. No database selected",
"END: Error Code: 2134. database doen't exist"
]
rx = re.compile(r'^(?:\[(\d+),(\s?[0-9:]+)](?:\s+(.*?)\s*)?|.*?)(Error Code:.*)?$')
for s in strs:
m = re.match(rx, s)
if m:
print(m.groups())
aW1wb3J0IHJlCgpzdHJzID0gWyJbMSwxMjoxMl0gY2FsbCBiYXNpY193aGlsZTEoKSBFcnJvciBDb2RlOiAxMDQ2LiBObyBkYXRhYmFzZSBzZWxlY3RlZCIsCgkiWzEsMTI6MTJdIGNhbGwgYWRkKCkgQXNkZmpnZyBFcnJvciBDb2RlOiAxMDQ2LiBObyBkYXRhYmFzZSBhYSBzZWxlY3RlZCIsCgkiWzEsMTI6MTJdIGNhbGwgYWRkKCkiLAoJIlsxLDEyOjEyXSIsCgkiRXJyb3IgQ29kZTogMTA0Ni4gTm8gZGF0YWJhc2Ugc2VsZWN0ZWQiLAoJIkVORDogRXJyb3IgQ29kZTogMjEzNC4gZGF0YWJhc2UgZG9lbid0IGV4aXN0IgpdCnJ4ID0gcmUuY29tcGlsZShyJ14oPzpcWyhcZCspLChccz9bMC05Ol0rKV0oPzpccysoLio/KVxzKik/fC4qPykoRXJyb3IgQ29kZTouKik/JCcpCmZvciBzIGluIHN0cnM6CgltID0gcmUubWF0Y2gocngsIHMpCglpZiBtOgoJCXByaW50KG0uZ3JvdXBzKCkpCgk=
('1', '12:12', 'call basic_while1()', 'Error Code: 1046. No database selected')
('1', '12:12', 'call add() Asdfjgg', 'Error Code: 1046. No database aa selected')
('1', '12:12', 'call add()', None)
('1', '12:12', None, None)
(None, None, None, 'Error Code: 1046. No database selected')
(None, None, None, "Error Code: 2134. database doen't exist")