我们可以在这里有类似的问题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/