import re
regex = re.compile(r"(\"(?:\\[\s\S]|[^\"])*\")|((?:\/\/|#)[^\n]*)|(\/\*[\s\S]*?\*\/)")
test_str = ("//first line\n\n"
" {\"aaa\": \"qwerty\",//00\n"
" \"bbb\": 1234 //comment (not pure JSON syntax)\n"
" ,\"ccc\": true # alternative comment style\n"
" ,\"dd\\\"d\":/*multiline\\\" comm\\ent*/ /*comm2\\*/null,\n"
" \"ee//e\": \"example of any symbols in key including inactive comments\",\n"
" \"jsonComm\":/*is*/\"data format\",/*which contains*///comments\n"
" \"multiline1\" /*: 1, //- example of multiline comments\n"
" \"multiline2\": 2,\n"
" \"multiline3\":= 1234,*/ :[36.8,false/*,34*/,\n"
" \"/**/\",[1,2,3,4,[//56789\n"
" 5,6,[[/*0*/7,{\"x\":/*xx*/\"x\"}],8]],{}] ],\n"
" \"mayBeAnyStructure\":{\"a\":1/**/,\"b\":2},\n"
" \"lineEnd\\\\\" \n"
" :\"end\"\n"
"}//after json\n"
" \n"
" /*2*/ ")
subst = "$1"
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