如何查找向量是否包含与正则表达式匹配的任何内容
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 的正则表达式。
限制:
- 没有外部支持库(例如我不能使用 boost)
- 没有 C++11 或更新版本。
QRegEpx 会完成这项工作。为你的每个标记创建一个 QRegExp,然后 运行 它们对照 x
来识别它是哪个。
然后 运行 QString(y).contains(matchedRegExp)
得到你的答案。
编辑:您还可以:
QStringList list = QString(y).split(", ", QString::SkipEmptyParts).filter(matchedRegExp);
bool answer = list.size() > 0;
这样您就可以在需要时获得列表。
我对我正在从事的项目有疑问。我考虑过这些,也有一些怀疑,但我也很想听听社区的意见。
我有一个 std::vector<std::string> x
,其中包含一些正则表达式,例如“^OPEN$”和“^CLOSE$”。我还有一个 std::vector<std::string> y
,其中包含一些字符串,例如 "OPEN"、"OPEN23"、"CLOSE"、"CLOSE4"、"XS_234$".
现在我必须检查向量 y 是否至少有一个匹配向量 x 的正则表达式。
限制:
- 没有外部支持库(例如我不能使用 boost)
- 没有 C++11 或更新版本。
QRegEpx 会完成这项工作。为你的每个标记创建一个 QRegExp,然后 运行 它们对照 x
来识别它是哪个。
然后 运行 QString(y).contains(matchedRegExp)
得到你的答案。
编辑:您还可以:
QStringList list = QString(y).split(", ", QString::SkipEmptyParts).filter(matchedRegExp);
bool answer = list.size() > 0;
这样您就可以在需要时获得列表。