如何查找向量是否包含与正则表达式匹配的任何内容

时间:2015-01-21 22:01:26

标签: c++ qt vector

我对我正在处理的项目有疑问。我已经考虑过这些,并有一些怀疑,但我也很想听听社区的意见。

我有一个std::vector<std::string> x,其中包含一些正则表达式,例如&#34; ^ OPEN $&#34;和&#34; ^关闭$&#34;。我还有一个std::vector<std::string> y,其中包含一些字符串,如&#34; OPEN&#34;,&#34; OPEN23&#34;,&#34; CLOSE&#34;,&#34; CLOSE4&#34;, &#34; XS_234 $&#34;

现在我必须检查向量y是否至少有一个与向量x的正则表达式匹配。

限制:

  • 没有外部支持库(例如我不能使用boost)
  • 没有C ++ 11或更新。

1 个答案:

答案 0 :(得分:0)

QRegEpx将完成这项工作。为每个令牌创建 QRegExp ,然后针对x运行它们,以确定它是哪一个。

然后运行QString(y).contains(matchedRegExp)以获得答案。

编辑:你也可以这样做:

QStringList list = QString(y).split(", ", QString::SkipEmptyParts).filter(matchedRegExp);
bool answer = list.size() > 0;

如果需要,你可以使用该列表。