2

我想在一个字符串中搜索一个不等于 "(",")","!","&","|",";" 的位置。如果我使用if(str[1] != "!" && str[1] != "(" ...),它太长了......有什么我可以用它来简化这个吗?

4

3 回答 3

5

我认为您在谈论find_first_not_ofstr.find_first_not_of("!(...").

于 2012-10-01T09:54:29.410 回答
5
string badChars = "!()&|;";
if ( badChars.find(str[1]) == string::npos )
{
}

编辑:我想我误解了这个问题。正如 Michael Krelin 指出的那样,find_first_not_of这可能就是您想要的。

于 2012-10-01T09:54:37.037 回答
2

任何正则表达式引擎都可以通过以下方式匹配:

'([^()!&|;])'
于 2012-10-01T09:56:16.280 回答