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

how to find if a vector contains anything matching to regular expression

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

我有一个 std::vector<std::string> x,其中包含一些正则表达式,例如“^OPEN$”和“^CLOSE$”。我还有一个 std::vector<std::string> y,其中包含一些字符串,例如 "OPEN"、"OPEN23"、"CLOSE"、"CLOSE4"、"XS_234$".

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

限制:

QRegEpx 会完成这项工作。为你的每个标记创建一个 QRegExp,然后 运行 它们对照 x 来识别它是哪个。

然后 运行 QString(y).contains(matchedRegExp) 得到你的答案。

编辑:您还可以:

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

这样您就可以在需要时获得列表。