gpt4 book ai didi

C++ regex_replace 问题

转载 作者:太空宇宙 更新时间:2023-11-04 16:15:04 25 4
gpt4 key购买 nike

为什么这段代码没有将“Mozilla/5.0”替换为“My User Agent”?

正则表达式在 Notepad++ 中运行良好,但在我的控制台应用程序中不起作用。

#include <regex>
#include <string>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
string header =
"GET / HTTP/1.1\r\n\
Host: com.com\r\n\
User-Agent: Mozilla/5.0\r\n\
Connection: keep-alive";

tr1::regex rx("^(User-Agent:).+$", regex_constants::icase);
header = regex_replace(header, rx, "$1 My User Agent", regex_constants::format_first_only);

return 0;
}

最佳答案

问题是 ^ 表示 string 的开头,而不是 line 的开头。您可以使用以下正则表达式,效果很好:

((?:^|\r\n)User-Agent:).+(?=$|\r\n)

Regular expression visualization

关于C++ regex_replace 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23589015/

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