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