gpt4 book ai didi

c++ - C++ 11 中带有选项 R 的正则表达式

转载 作者:行者123 更新时间:2023-11-27 23:42:34 26 4
gpt4 key购买 nike

我在使用 Regex 的 C++ 中有以下语句:

if (regex_match(argv[i], regex(R"((.*)\.o)")))

我现在的问题是 regex(R"((.*)\.o)")" 做什么?我知道外部 regex_match 函数会检查 argv[i] 等于用逗号分隔的第二个语句。如果它们相等,则计算结果为 true,否则计算结果为 false。

最佳答案

regex(XXXX) 创建一个新的 std::regex 对象,调用 appropriate constructor取决于 XXXX 是什么。在本例中,它是该列表中的第二个。

因为...

R"(...)" 是一个 raw string literal ,这让您可以在正则表达式中使用反斜杠之类的东西,而不必像在普通字符串文字中那样对它们进行转义。

如果您不知道正则表达式本身匹配什么,甚至不知道正则表达式是什么……那是一个更大的话题,您可以从大量教程开始。

(使用 std::regex_search()\.o$ 的 RE 将是更好的写法,IMO,或者一种不根本不使用 RE。)

关于c++ - C++ 11 中带有选项 R 的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53344362/

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