[英]multiline regex pattern in c++
我需要模式来支持多行。 该模式来自用户,他们能够将多行字符串作为正则表达式模式。
例如:
std::regex re("^"+CWD+"("+path_delim+"[\\s\\S]*|$)");
if(std::regex_search(file,re)){
//do something
}
CWD
变量可以是多行字符串。
PS:最好只使用std::regex
来解决这个问题,即如果它不是轻量级的,我不想使用任何库。 另外,它必须是c++11
。
似乎已经支持多行正则表达式模式。 我需要做的是在将变量传递给regex构造函数之前对其进行清理。 这是我用来清理字符串以构造有效正则表达式的代码:
String sanitizeRegexString(const String& s){
std::regex re(R"([\s\S])");
return std::regex_replace (s,re,"[$&]",std::regex_constants::format_default);
}
上面的函数接受一个字符串,并用[]
将其所有字符括起来,因此该字符串不会被解释为regex模式,而是将其视为该模式中的固定字符串,而与其连接的其他字符串(不进行消毒)则用作regex图案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.