2

"(",")","!","&","|",";" と等しくない 1 つの文字列内の位置を検索したい。を使用するif(str[1] != "!" && str[1] != "(" ...)と長すぎます...これを簡単にするために使用できるものはありますか?

4

3 に答える 3

5

find_first_not_ofについて話していると思います。str.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 に答える