ちなみに私がいう全一致というのは、検索する文字列を”fish”とすると、一致するのが”fish”のみという意味合いで使っています。
例えば、stdのfind関数だと、”fisha”もfind関数に引っかかってしまいます。
全一致を判定する関数
regrexヘッダーに正規表現を利用して、文字列が正規表現に適合するかを判定するregex_search関数があるので、
この関数を使用することで、文字列の全一致を判定することができます。
しかし、regrexヘッダーはc++のversionよって使えないので、注意です。
regrex_searchの使い方
regrexというクラスに正規表現を割り当てることができ、それをregrex_searchの引数に埋め込めば、
正規表現でを使うことができます。
例えば、fishという文字が全一致しているかは以下のように書きます。
regex re("^" + str1 + "$" , regex_constants::icase);
2番目の引数は小文字制限を表しています。
単純に対象の文字列が”fish”と全一致しているか判定するには以下のように書きます。
string str1 = "fish";
regex re("^" + str1 + "$" , regex_constants::icase);
smatch m;
if(std::regex_search(str1, m, re)){
// match
}