gpt4 book ai didi

c++ - 如何在 C++ 中使用正则表达式匹配 "{"

转载 作者:行者123 更新时间:2023-11-30 02:35:10 25 4
gpt4 key购买 nike

我们可以在这里有类似的问题stackoverflow :

但我的问题是:

首先我尝试匹配字符串中的所有 x 所以我写了下面的代码,它运行良好:

string str = line;
regex rx("x");
vector<int> index_matches; // results saved here

for (auto it = std::sregex_iterator(str.begin(), str.end(), rx);
it != std::sregex_iterator();
++it)
{
index_matches.push_back(it->position());
}

现在,如果我尝试匹配所有 {,我会尝试替换regex rx("x");regex rx("{");regex rx("\{");

所以我得到了一个异常,我认为它应该抛出一个异常,因为我们使用 {有时为了表达正则表达式,它期望在 regex 最后有 这就是它抛出异常的原因。

那么首先我的解释正确吗?

第二个问题,我需要使用上面相同的代码匹配所有 {,是否可以将 regex rx("{"); 更改为其他内容?

最佳答案

需要对正则表达式中有特殊含义的字符进行转义,即使用\{正则表达式。但是,\ 在 C++ 字符串文字中具有特殊含义。因此,接下来您需要转义 C++ 字符串文字中具有特殊含义的字符,即写:

regex rx("\\{");

关于c++ - 如何在 C++ 中使用正则表达式匹配 "{",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33891038/

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