不思議なことに、グーグルはそのような単純な質問に答えることを拒否します:
どうすればboost :: regexpの大文字と小文字を区別できませんか?
これは私が持っているものです:
static const boost::regex bad_words("(?:^|.* )(f(?:uc|a)k(?:i[ng]{1,2})?|bitch(?:es|iz)?)(?:$| .*)"); //reduced to the english ones
もちろん、大文字の悪い単語もフィルタリングしたいと思います。これは私がそれらを一致させる方法です:
//std::string ms; - chat messsage
//boost::match_results<std::string::const_iterator> results; - prewious regexp results
else if(boost::regex_match(ms, results2, bad_words)) { //
std::stringstream msg;
msg<<"Avoid bad words! Word '"<<results2[1]<<"' is banned!";
this->whisper(results[1], msg.str()); //name, message
}
それで、鈍感な正規表現のための別の関数はありますか?または別の正規表現オブジェクト?または修飾子i
が利用可能ですか?