我刚开始学习模式匹配!
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
上面的方法很糟糕,因为如果允许的符号变得很大,那么我的代码也会变得很大。任何优化但简单的例子?也许在正则表达式中有更好的方法?