gpt4 book ai didi

c++ - 如何使用正则表达式从字符串中提取值

转载 作者:行者123 更新时间:2023-11-28 04:03:46 28 4
gpt4 key购买 nike

我正在尝试使用正则表达式从以下字符串中提取数字 9;

“约翰?\n\r\n\rFRED:9”

我的正则表达式是

"约翰\?[\n\r]+FRED: (.*)"

\n 和\r 是换行符和返回字符(空白),显然 "(.*) 是捕获组。

虽然它不工作!我猜是因为一些非常明显的事情。

顺便说一下,我知道最明显的方法是只搜索字符串中的“:”,然后用这种方法得到数字,但我正在学习正则表达式,我在这上面花了很多时间那会很好知道我做错了什么。

最佳答案

您需要在正则表达式中正确转义控制字符。[\n\r] in john\?[\n\r]+FRED: (.*) 匹配 newline回车。可能你想要的是\\r\\n,所以你可以在字符串中匹配它。

正确的正则表达式应该是:john\?[\\n\\r]+FRED: (.*)

这是一个很棒的工具,您可以在其中可视化正则表达式:https://regex101.com/r/qaRy5Z/1/

编辑:在评论建议之后,您还可以使用原始字符串文字,这样就可以省略双反斜杠:

 std::regex re(R"( john \?[\n\r]+FRED: (.*))");

https://gcc.godbolt.org/z/U2AbTb

关于c++ - 如何使用正则表达式从字符串中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59079958/

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