gpt4 book ai didi

c++ - 使用 Google RE2 同时匹配多个正则表达式

转载 作者:行者123 更新时间:2023-12-02 10:38:47 24 4
gpt4 key购买 nike

我正在尝试使用 Google 的 RE2 库快速匹配许多(500 多个)正则表达式,因为我想获得与 this whitepaper 类似的结果。 .我想使用第 13 页的 RE2-m。

根据我在网上看到的内容,Set 界面是可行的方法,但我不确定从哪里开始——我无法在线找到使用 set 界面的 Google RE2 教程。有人可以指出我正确的方向吗?

最佳答案

今天刚刚为我正在做的事情实现了这个,这里有一个片段供 future 的读者使用。

使用 RE2 处理此问题的正确类是 RE2::Set,您可以找到代码 here .

这是一个例子:

std::vector<std::string> kRegexExpressions = {
R"My name is [\w]+",
R"His number is [\d]+",
};

RE2::Set regex_set(RE2::DefaultOptions, RE2::UNANCHORED);

for (const auto &exp : kRegexExpressions) {
int index = regex_set.Add(exp, &err);
if (index < 0) {
<report-error>
return;
}
}

if (!regex_set.Compile()) {
<report-error>
return;
}

std::vector<int> matching_rules;
if (!regex_set_.Match(line, &matching_rules)) {
<no-match>
return;
}

for (auto rule_index : matching_rules) {
std::cout << "MATCH: Rule #" << rule_index << ": " << kRegexExpressions << std::endl;
}

关于c++ - 使用 Google RE2 同时匹配多个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56262968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com