preg_match_all ('/(.+?)\s+(email|username)=(.+?)\s+(pass|password)=(.+?)\s+/', $str, $m); $cnt = count ($m[0]); for ($i = 0; $i < $cnt; $i++) echo $m[1][$i], ':', $m[3][$i], ':', $m[5][$i], "\n";