【问题标题】:C++ regex invalid character (colon) [closed]C ++正则表达式无效字符(冒号)[关闭]
【发布时间】:2012-07-25 02:18:52
【问题描述】:

我有这行代码

regex rgx("([A-Z0-9#\:])");

它一直告诉我我的冒号是无效字符。 不管我逃不逃。 有什么帮助吗? 谢谢!

【问题讨论】:

  • 与冒号无关,但左尖括号[ 永远不会闭合。
  • 哎呀,有一个右括号。错字。
  • 这是使用新的 C++11 std::regex,对吗?在这种情况下,您正在使用的正则表达式的实现很可能是不完整的。例如。当使用带有 -std=c++11 选项的 GCC 4.7 时,复杂的字符类在正则表达式中还不起作用。
  • 问题出在代码的其他地方。不过,感谢您的编译确认。
  • 如果问题是别的,我建议你关闭这个问题。

标签: c++ regex character colon


【解决方案1】:

您需要使用 两个 反斜杠,因为在 C++(以及 C)中,一个反斜杠用于引入特殊字符(例如,换行符为 "\n")。

试试:

regex rgx("([A-Z0-9#\\:])");

【讨论】:

    【解决方案2】:

    您正在尝试转义冒号字符,该冒号字符在字符类之外没有特殊含义。

    也许你也应该关闭你的角色类?

    "[A-Z0-9#\:]"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多