1

我有一个字符串,我需要验证其有效性,如果是后者:

  • 它完全是空的
  • 或者包含一个必须如下所示的逗号分隔字符串:'abc,def,ghi,jkl'。

这些逗号分隔值中有多少并不重要,但如果字符串不为空,它必须遵守逗号(并且只有逗号)分隔格式,它们周围没有空格,并且每个值可能只包含 ascii az/Az.. 没有特殊字符或任何东西。

我将如何验证字符串是否符合规则?

4

2 回答 2

8

你可以使用这个正则表达式

^([a-zA-Z]+(,[a-zA-Z]+)*)?$

或者

^(?!,)(,?[a-zA-Z])*$

^是字符串的开始

[a-zA-Z]是匹配单个大写小写字母的字符类

+是与前面的字符或组1 匹配多次的量词

*是一个量词,它匹配前面的字符或组0 到多次

?是匹配前面字符或组0 或 1 次的量词

$是字符串的结尾

于 2013-04-06T11:20:44.517 回答
1

考虑使用正则表达式:

bool isOK = str == "" || str.Split(',').All(part => part != "" && part.All(c=> (c>= 'a' && c<='z') || (c>= 'A' && c<='Z')));

于 2013-04-06T11:52:12.570 回答