我正在研究C ++,
我需要在给定的字符串中搜索给定的正则表达式。请提供指向它的指针。我尝试使用boost :: regex库。
以下是正则表达式:
正则表达式搜索:"get*"
以上表达式我必须在以下不同的字符串中搜索: e.g。
1. "com::sun::star:getMethodName"
2. "com:sun:star::SetStatus"
3. "com::sun::star::getMessage"
所以我在上面的情况下,我应该得到第一个字符串假为第二个真实,第三个为真。 提前谢谢。
答案 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