作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将以下字符串传递给一个函数
void func(string expr)
{
regex pattern(expr);
}
func( "(\d{1,2}\.+\d{2})" )
然而,通过 visual studio 调试器,我发现存储的正则表达式模式实际上是 (d{1,2}.+d{2})
,这导致我的正则表达式完全出现故障。为什么会发生这种情况,我该如何解决。
最佳答案
那些是反斜杠,默认情况下是转义字符。将它们视为文字字符...
试试这个(在 C++11 中)。 R 表示原始字符串,其形式为 R "delimiter( raw_characters )delimiter"
,其中 delimiter 可以是您喜欢的任何字符序列。在本例中,我只使用了括号。
func( R"((\d{1,2}\.+\d{2}))" )
或任何版本中的这个:
func( "(\\d{1,2}\\.+\\d{2})" )
关于c++ - 为什么 Visual Studio 正在删除我的反斜杠字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58894557/
我是一名优秀的程序员,十分优秀!