gpt4 book ai didi

c++ - C++中的多行正则表达式模式

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:47:39 25 4
gpt4 key购买 nike

我需要模式来支持多行。该模式取自用户,他们能够将多行字符串包含为正则表达式模式。

例如:

std::regex re("^"+CWD+"("+path_delim+"[\\s\\S]*|$)");
if(std::regex_search(file,re)){
//do something
}

CWD 变量可以是多行字符串。

P.S:如果我可以只使用 std::regex 来解决这个问题,那就太好了,也就是说,如果它不是轻量级的,我不想使用任何库。此外,它必须是 c++11

最佳答案

似乎已经支持多行正则表达式模式。我所需要的只是在将变量传递给正则表达式构造函数之前对其进行清理。这是我用来清理字符串以构建有效正则表达式的代码:

String sanitizeRegexString(const String& s){
std::regex re(R"([\s\S])");
return std::regex_replace (s,re,"[$&]",std::regex_constants::format_default);
}

上面的函数接受一个字符串,并用 [] 包裹它的所有字符,因此该字符串不会被解释为正则表达式模式,而是被视为模式中的固定字符串,而其他字符串与它连接(没有 sanitizer )充当正则表达式模式。

关于c++ - C++中的多行正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35353953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com