解析std :: string以获取一系列字符

时间:2011-11-07 15:24:56

标签: c++ regex string

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

3 个答案:

答案 0 :(得分:5)

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

这两个函数都允许您指定起始索引。这样您就可以从中断的地方继续搜索。

答案 1 :(得分:2)

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

答案 2 :(得分:0)

正则表达式看起来有点矫枉过正。您可以使用std::string的方法:find_first_of()和/或find_last_of()Here您可以找到文档和示例。