パターンマッチングの勉強を始めました!
var stringToBeProcessed = "***???^^^^";
この文字列に [*, ?, ^] のみが含まれているかどうかを確認する必要があります
この文字列には、5 つの疑問符、5 つの星、または 5 つの ^が連続して含まれていてはなりません (ただし、それらは分散して存在する可能性があります)。(つまり) *または ????? または ^^^^^ は無効です。
無効なテスト ケース:
** ??????? * *???^^ // 問題が 5 回連続して繰り返されるため、無効です。
% * // [*, ?, ^] 以外の記号が存在する。したがって無効
編集:
string.Contains() メソッドを使用して、上記のパターンを確認します。
私がしたのはこれだけでした:
string.contains("*****") || string.contains("^^^^^") || string.contains("?????") is true => is invalid
また
string.toCharArray().All(char => isCharIn(*,?,^)) is false => is invalid
許容シンボルが巨大になると、私のコードも巨大になるため、上記の方法は悪いです。最適化された単純な例はありますか? おそらく正規表現でより良い方法ですか?