【问题标题】:Parse std::string for a selection of characters解析 std::string 以选择字符
【发布时间】:2011-11-07 15:24:55
【问题描述】:

有没有一种简单的方法来解析std::string 以搜索某些字符的列表?例如,假设用户输入this<\is a.>te!st string。我希望能够发现那些非字母字符并对此做一些事情。我正在寻找一种通用解决方案,它允许我简单地指定chars 的列表,以便我可以在不同情况下重用该函数。我猜正则表达式将在任何解决方案中发挥关键作用,显然越紧凑和高效越好。

【问题讨论】:

    标签: c++ regex string


    【解决方案1】:

    您可以为此使用std::string::find_first_not_of()。它会找到除了你给它的集合中的字符之外的字符。其对应的find_first_of() 将搜索集合中 的字符。

    这两个函数都允许您指定起始索引。这将使您能够从中断处继续搜索。

    【讨论】:

      【解决方案2】:

      使用像boost::regex 这样的正则表达式库怎么样?
      This 应该完全符合您的要求。
      如果你的编译器支持 C++11,你可以使用 std::regex。

      【讨论】:

        【解决方案3】:

        Regex 似乎有点矫枉过正。您可以使用std::string 的方法:find_first_of() 和/或find_last_of()Here 你可以找到文档和示例。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-25
          • 1970-01-01
          • 1970-01-01
          • 2016-03-29
          相关资源
          最近更新 更多