2011-11-07 13 views
2

有沒有簡單的方法來解析std::string搜索某些字符的列表?例如,假設用戶輸入this<\is a.>te!st string。我希望能夠發現那些非字母字符在那裏,並做一些事情。我正在尋找一種通用解決方案,它允許我簡單地指定一個char s的列表,以便在不同情況下重用該功能。我猜測正則表達式在任何解決方案中都會起到關鍵作用,而且顯然更緊湊和更高效。解析std ::字符串的字符選擇

回答

5

您可以使用std::string::find_first_not_of()。它會找到除了你給它的集合中的字符。其對應部分find_first_of()將在集合中搜索的字符。

這兩個函數都允許你指定起始索引。這將使您能夠繼續從停止的地方開始搜索。

2

如何使用像boost::regex這樣的正則表達式庫?
This應該準確地做你正在尋找的東西。
如果你的編譯器支持C++ 11,你可以使用std :: regex。

0

正則表達式似乎是矯枉過正。您可以使用std::string的方法:find_first_of()和/或find_last_of()Here你可以找到文檔和例子。