求助一个正则表达式的写法
需要用广义匹配字符串来过滤文件名,但是类似boost这样的库只支持正则表达式,
所以想通过正则表达式修改广义匹配字符串,使之转成合理的正则表达式
下面是我网上找的代码,测试不通过,所以请精通正则的朋友帮忙修改下
std::string dos_wildcard_to_regex(std::string s)
{
//const char *szReg = "(\\w+)://((\\w+\\.)*\\w+)((/\\w*)*)(/\\w+\\.\\w+)?";
//boost::regex x(szReg);
static const boost::regex e("([.\\[{()\\+|^$])|(?)|(*)"); //<=======这句直接不通过,exception
return regex_replace(s, e, "(?1\\$1)(?2.)(?3.*)", boost::regex_constants::match_default |
boost::regex_constants::format_all);
}