Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在c++;?_C++_Regex_Mongodb_Bson - Fatal编程技术网

C++ 如何在c++;?

C++ 如何在c++;?,c++,regex,mongodb,bson,C++,Regex,Mongodb,Bson,我有一个像这样的物体 { "0" : "Kollywood", "1" : "Tollywood" } 我将在mongo db的查询中使用这个bson对象$in来获得所有匹配的标记,而不区分大小写。但我一个人就得到了完全匹配的结果 { 我的要求是,(所有匹配的标签不区分大小写) 我如何在C++中实现这一点? 这里是一个示例代码,你可以使用: string inp = "{\r\n\r\n \"result\": [\r\n {\r\n \"_id\":

我有一个像这样的物体

{ "0" : "Kollywood", "1" : "Tollywood" }
我将在mongo db的查询中使用这个bson对象$in来获得所有匹配的标记,而不区分大小写。但我一个人就得到了完全匹配的结果

{

我的要求是,(所有匹配的标签不区分大小写)


我如何在C++中实现这一点?

这里是一个示例代码,你可以使用:

string inp = "{\r\n\r\n    \"result\": [\r\n        {\r\n            \"_id\": 110, \r\n            \"tags\": [\r\n                {\r\n                    \"id\": \"5524cdfffe13b4934bbd6cab\", \r\n                    \"name\": \"Kollywood\"\r\n                }\r\n            ]\r\n        }\r\n    ], \r\n    \"ok\": 1\r\n}";
string regx = "(\"tags\":[\\s\\r\\n]+\\[[\\s\\r\\n]+)(\\{[\\s\\r\\n]+\"id\":[\\s\\r\\n]+\"[^\"]*?\",[\\s\\r\\n]+\"name\":[\\s\\r\\n]+\")([^\"]*?)(\"[\\s\\r\\n]+\\})";
regex rxg(regx);
string reslt = regex_replace(inp, rxg, "$1$2$3},\r\n                $2KollyWOOD$4");
std::cout << reslt << endl;
string inp=“{\r\n\r\n\“result\”:[\r\n{\r\n\“\u id\”:110\r\n\“tags\”:[\r\n{\r\n\“id\”:“5524cdfffe13b4934bbd6cab\”,\r\n\“name\”:“Kollywood\”\r\n}\r\n\r\n}\r\n}\r\n\“ok\”:1\r\n}”;
string regx=“(\'tags\”:[\\s\\r\\n]+\[\\s\\r\\n]+)(\\{[\\s\\r\\n]+\'id\:[\\s\\r\\n]+\'[^s\\r\\n]*?”,[\\s\\r\\n]+\'name\:[\\s\\r\\n]+\”([^s\\r\\n]*?)(\\\s\\r\\n]+\);
regex rxg(regx);
字符串reslt=regex_replace(inp,rxg,“$1$2$3},\r\n$2KollyWOOD$4”);
std::cout
{“0”:“Kollywood”,“1”:“Tollywood”}
这是查询对象,我必须按照以下方式转换它

            {
                "$or": [
                    {
                        "tags.name": {
                            "$regex": "^kolly wood", 
                            "$options": "xi"
                        }
                    }, 
                    {
                        "tags.name": {
                            "$regex": "^tolly wood", 
                            "$options": "xi"
                        }
                    }
                ]
            }

这不是C++的方式。
string inp = "{\r\n\r\n    \"result\": [\r\n        {\r\n            \"_id\": 110, \r\n            \"tags\": [\r\n                {\r\n                    \"id\": \"5524cdfffe13b4934bbd6cab\", \r\n                    \"name\": \"Kollywood\"\r\n                }\r\n            ]\r\n        }\r\n    ], \r\n    \"ok\": 1\r\n}";
string regx = "(\"tags\":[\\s\\r\\n]+\\[[\\s\\r\\n]+)(\\{[\\s\\r\\n]+\"id\":[\\s\\r\\n]+\"[^\"]*?\",[\\s\\r\\n]+\"name\":[\\s\\r\\n]+\")([^\"]*?)(\"[\\s\\r\\n]+\\})";
regex rxg(regx);
string reslt = regex_replace(inp, rxg, "$1$2$3},\r\n                $2KollyWOOD$4");
std::cout << reslt << endl;
            {
                "$or": [
                    {
                        "tags.name": {
                            "$regex": "^kolly wood", 
                            "$options": "xi"
                        }
                    }, 
                    {
                        "tags.name": {
                            "$regex": "^tolly wood", 
                            "$options": "xi"
                        }
                    }
                ]
            }