【问题标题】:.Net Regex for Comma Separated string with a strict format.Net Regex 用于具有严格格式的逗号分隔字符串
【发布时间】:2013-04-06 11:18:07
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# .net regex


    【解决方案1】:

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

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

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

    ^ 是字符串的开头

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

    的字符类

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

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

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

    $ 是字符串的结尾

    【讨论】:

    • 我希望我能 +2 你花时间解释每个令牌。 :)
    • 呜呼 - 非常感谢 - @The_Land_Of_Devils_SriLanka !特别是对于伟大、伟大的解释!
    【解决方案2】:

    考虑使用正则表达式:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 2019-12-04
      • 1970-01-01
      • 1970-01-01
      • 2016-05-28
      相关资源
      最近更新 更多