$re = '/("(?:\\\\[\s\S]|[^"])*")|((?:\/\/|#)[^\n]*)|(\/\*[\s\S]*?\*\/)/';
$str = '//first line
{"aaa": "qwerty",//00
"bbb": 1234 //comment (not pure JSON syntax)
,"ccc": true # alternative comment style
,"dd\\"d":/*multiline\\" comm\\ent*/ /*comm2\\*/null,
"ee//e": "example of any symbols in key including inactive comments",
"jsonComm":/*is*/"data format",/*which contains*///comments
"multiline1" /*: 1, //- example of multiline comments
"multiline2": 2,
"multiline3":= 1234,*/ :[36.8,false/*,34*/,
"/**/",[1,2,3,4,[//56789
5,6,[[/*0*/7,{"x":/*xx*/"x"}],8]],{}] ],
"mayBeAnyStructure":{"a":1/**/,"b":2},
"lineEnd\\\\"
:"end"
}//after json
/*2*/ ';
$subst = "$1";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$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 PHP, please visit: http://php.net/manual/en/ref.pcre.php