regex挑战,将不同的规则仅分为两组

I have the following data:

msg=hello  msg=hellohello age:  s35  { getAge } for  name=peter id="123"

I would like to use regex to classify them in the following group 1 (left of the colon) and group 2 (right of the colon) structure:

msg : hello  
msg : hello/hello 
age :   thirtyfive  { getAge } for  
name: peter'
id  : "123"

I come up with the following regular expression

([^,=\s]*)=([^,\s]*)|([^= ]*):  ([^=]*for)

This does the job except that I have an unfortunate constraint. I can only allow two regular expression groups. As you can see the "age" attribute and corresponding key are in group 3 and group 4, correspondingly.

How can I group them all in just two groups in regex?

which programing language are you using ?

Because you didn't reply, I'll provide a regex for python and php:

PYTHON:

import re
result = re.sub(r"([a-z]+)(?:=|:\s+)(\d+.*?for |[^ ]+)", "\\1: \\2
", original, 0, re.IGNORECASE | re.DOTALL | re.MULTILINE)

PHP:

$result = preg_replace('/([a-z]+)(?:=|:\s+)(\d+.*?for |[^ ]+)/sim', '\1: \2
', $original);

Output:

msg: hello
  msg: hellohello
 age: 35  { getAge } for 
 name: peter
 id: "123"