我有一个字符串,我需要验证其有效性,如果是后者:
- 它完全是空的
- 或者包含一个必须如下所示的逗号分隔字符串:'abc,def,ghi,jkl'。
这些逗号分隔值中有多少并不重要,但如果字符串不为空,它必须遵守逗号(并且只有逗号)分隔格式,它们周围没有空格,并且每个值可能只包含 ascii az/Az.. 没有特殊字符或任何东西。
我将如何验证字符串是否符合规则?
你可以使用这个正则表达式
^([a-zA-Z]+(,[a-zA-Z]+)*)?$
或者
^(?!,)(,?[a-zA-Z])*$
^
是字符串的开始
[a-zA-Z]
是匹配单个大写或小写字母的字符类
+
是与前面的字符或组1 匹配多次的量词
*
是一个量词,它匹配前面的字符或组0 到多次
?
是匹配前面字符或组0 或 1 次的量词
$
是字符串的结尾
考虑不使用正则表达式:
bool isOK = str == "" || str.Split(',').All(part => part != "" && part.All(c=> (c>= 'a' && c<='z') || (c>= 'A' && c<='Z')));