我想在一个字符串中搜索一个不等于“(”,“)”,“!”,“&”,“|”,“;”的位置。如果我使用if(str[1] != "!" && str[1] != "(" ...)
,那就太长了......有什么我可以用来使这个变得简单吗?
答案 0 :(得分:5)
我认为你在谈论find_first_not_of。 str.find_first_not_of("!(...")
。
答案 1 :(得分:5)
string badChars = "!()&|;";
if ( badChars.find(str[1]) == string::npos )
{
}
编辑:我想我误解了这个问题。正如Michael Krelin指出的,find_first_not_of
可能就是你想要的。
答案 2 :(得分:2)
任何正则表达式引擎都可以通过以下方式匹配:
'([^()!&|;])'