nodejs本机模块中的正则表达式

时间:2013-10-05 15:56:50

标签: c++ regex node.js parsing native

我正在为nodejs编写C ++模块以进行大量数据解析。我决定用c ++编写解析,因为它会更快。我的目标是做这样的事情:

preg_match_all("@(==[^=]+==)(.+?(?=[^=]==[^=]|$))@s", $source, $paragraphs);
$data = preg_replace("/\[\[(Файл|Картинка|File|Picture|Image|double image):(.*)/i", "", $source);

但在c ++中..我做了一个研究,我找到了Boost lib,但是我无法在VisualStudio上安装它。我的目标是在下面的c ++代码中实现上面显示的正则表达式:

#include <node.h>

using namespace v8;

Handle<Value> Callback(const Arguments& args) {
HandleScope scope;

if (!args[1]->IsFunction()) {
    return ThrowException(Exception::TypeError(
        String::New("Second argument must be a callback function")));
}

Local<Function> callback = Local<Function>::Cast(args[1]);

Local<String> text = args[0]->ToString();

// do regexs and data parsing here

const unsigned argc = 2;
Local<Value> argv[argc] = {
    Local<Value>::New(Null()),
    //, JSON OUTPUT HERE
};

callback->Call(Context::GetCurrent()->Global(), argc, argv);

return Undefined();
}

void RegisterModule(Handle<Object> target) {
target->Set(String::NewSymbol("parse"), FunctionTemplate::New(Callback)->GetFunction());
}

NODE_MODULE(wikiparser, RegisterModule);

问题:

有关如何在c ++中使用此类函数或任何简单方法来实现我的目标的任何建议?请注意,不会只有1-2个正则表达式 - 会有10-15个。

0 个答案:

没有答案