использование pcre cpp с модулем nginx - PullRequest
0 голосов
/ 15 февраля 2020

У меня есть код C ++, который работает как модуль Nginx и исполняется при получении запросов nginx. Этот код при запуске в модульном тесте C ++ ведет себя как ожидалось, и я вижу, что «res True i 51 для первого повторного вывода» печатается. Однако, когда он выполняется на сервере nginx. Вместо этого выполняется отладка «res False i 51» он должен соответствовать регулярному выражению и печатать «res True i 51». Почему это регулярное выражение не работает при запуске в nginx.

        #include <pcrecpp.h>
        pcrecpp::RE re("Chrom[^ \\/]+\\/(\\d+)[\\.\\d]* ");
        int i = 0;
        bool res = re.PartialMatch("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.3987.66 Safari/537.36", &i);
        if (res == true) {
            if ( i == 51 ) {
                ctx->logger->log(Logger::Info, "res True i 51 \n");
                cout << "res True i 51\n";
            }
        } else {
            ctx->logger->log(Logger::Info, "res False i 51\n");
            cout << "res False i 51\n";
        }
...