0

我正在研究 C++,

我需要在给定的字符串中搜索给定的正则表达式。请为我提供指导。我尝试使用 boost::regex 库。

以下是正则表达式: 要搜索的正则表达式:"get*"

上面的表达式我必须在以下不同的字符串中搜索:例如

1.    "com::sun::star:getMethodName"
2.    "com:sun:star::SetStatus"
3.    "com::sun::star::getMessage"

所以我在上面的情况下,我应该为第一个字符串为真,第二个为假,第三个为真。提前致谢。

4

1 回答 1

2
boost::regex re("get.+");

例子。

#include <iostream>
#include <string>
#include <boost/regex.hpp>
#include <vector>
#include <algorithm>

int main()
{
   std::vector<std::string> vec = 
   {
      "com::sun::star:getMethodName",
      "com:sun:star::SetStatus",
      "com::sun::star::getMessage"
   };
   boost::regex re("get.+");
   std::for_each(vec.begin(), vec.end(), [&re](const std::string& s)
   {
      boost::smatch match;
      if (boost::regex_search(s, match, re))
      {
         std::cout << "Matched" << std::endl;
         std::cout << match << std::endl;
      }
   });
}

http://liveworkspace.org/code/7d47ad340c497f7107f0890b62ffa609

于 2012-08-06T06:00:37.643 回答