gpt4 book ai didi

c++ - RegEx 获取两个换行符之间的文本

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:49 26 4
gpt4 key购买 nike

您好,我需要获取 \r\r\n

之间的所有文本

例如:

AT+CGPADDR= 1

+CGPADDR:"1 10.111.002.137

OK

Image with enabled ASCII symbols 例如:

AT+CGPADDR= 1\r\r\n
+CGPADDR:"1 10.111.002.137\r\n\r\n
OK\r\n

我想得到这个:

+CGPADDR:"1 10.111.002.137

我准备了类似这样的\v(.+?)\v,但它没有正常工作: https://regex101.com/r/X6oPgu/1

最佳答案

C++ std::regex 不支持 \v 结构。您可以匹配 \r\n\n 并匹配其后的行并使用 (.+) 捕获到第 1 组,并且 - 如果需要 - 匹配换行符,也是:

#include <regex>
#include <string>
#include <iostream>

int main() {
std::regex reg{"\r\r\n(.+)\r\n\r\n"};
std::string text{"AT+CGPADDR= 1\r\r\n+CGPADDR:\"1 10.111.002.137\r\n\r\nOK\r\n"};
std::smatch match;
if (regex_search(text, match, reg)) {
std::cout << match.str(1); // => +CGPADDR:"1 10.111.002.137
}
return 0;
}

参见 C++ demo .

请注意 . 不会匹配任何换行字符,因此使用贪婪的 + 是安全的(1 或更多)量词。

关于c++ - RegEx 获取两个换行符之间的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58401026/

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