如何在c ++中搜索正则表达式?

时间:2012-08-06 05:53:58

标签: c++ boost boost-regex

我正在研究C ++,

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

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

以上表达式我必须在以下不同的字符串中搜索: e.g。

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

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

1 个答案:

答案 0 :(得分: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