C++ 错误:安腾中未知的转义序列“\^”

C++ 错误:安腾中未知的转义序列“\^”,c++,regex,C++,Regex,我在Windows C++代码中使用以下正则表达式: regex expressionD("\^_+\\d+_\\d+_\\d+_.*\$"); 但这给了我一个错误。所以我用双反斜杠代替了单反斜杠,它在Solaris中运行良好,但在安腾中会产生问题 如何解决此问题?您应该再次避开反斜杠 regex expressionD("\\^+\\d+\\d+\\d+.*\\$"); 是否使用“^”作为符号或字符串的开头?请输入所需的实际RE的版本,而不尝试在字符串文本中转义它。现在还不清楚,在你发布的

我在Windows C++代码中使用以下正则表达式:

regex expressionD("\^_+\\d+_\\d+_\\d+_.*\$");
但这给了我一个错误。所以我用双反斜杠代替了单反斜杠,它在Solaris中运行良好,但在安腾中会产生问题


如何解决此问题?

您应该再次避开反斜杠

regex expressionD("\\^+\\d+\\d+\\d+.*\\$");

是否使用“^”作为符号或字符串的开头?请输入所需的实际RE的版本,而不尝试在字符串文本中转义它。现在还不清楚,在你发布的代码中,你是有意地以C字符串数据形式转义还是有意地重新转义反斜杠。不幸的是,VC++还不支持它,但正确的解决方案是R\^\\\\\\\d+\\\d+\\\\$正如我前面提到的,我已经用双反斜杠替换了单反斜杠,它在solaris中运行良好,但在安腾中会产生问题。请阅读我上面的方法。+1,这是正确的解决方案。与您的示例不同,此字符串中没有“^escape”序列。第一个“转义第二个”,因此“^”是未转义的。正如我前面提到的,将单反斜杠替换为双反斜杠,新字符串将是:regex expressionD\\\^\\\\\\\\d+\\\\\d+\\\\\\\ d+\\\\\$;它在solaris中工作正常,但在itaniumHi专家中会产生问题该问题已通过使用以下语法得到解决:-regex expressionD^+\\d+\\d+\\d+\\d+\\d+\\d+\\d+\\d+.*$;无论如何,感谢所有人的支持。@Vikasdundani你从来没有告诉我们你不想在字面上匹配克拉和美元。