如何在std::regex_replace中分隔$n和数字?

qyuhtwio  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(121)

我有这样一个正则表达式模式:

string text = "ekwfwierflwi..DATE..wdwedwd"
const string pattern = "([\s\S]*)(DATE)([\s\S]*)";

然后我希望将date替换为数字序列:

const string format = fmt::format("$1{}$3", "2024-04.05 12:00:00");
std::regex_replace(text, pattern, format);

但是它会变成$12024-04.05...,我试过${1},但是没有效果。
可以只搜索字符串的一部分两次或三次并将它们连接起来,或者将其替换为另一个值并将其替换回来。
有其他直接的方式吗?
我想知道是否有一个简洁的方法

pinkon5k

pinkon5k1#

为什么不干脆

std::regex_replace(text, "DATE", fmt::format("{}", "2024-04.05 12:00:00"))

(假设你有一个你想要格式化的动态日期,而不仅仅是一个简单的文本字符串……)

相关问题