【问题标题】:Regular expression to match 3 Characters with comma seperation正则表达式匹配 3 个用逗号分隔的字符
【发布时间】:2013-07-17 09:12:35
【问题描述】:

我希望我的正则表达式以这样的方式验证字符集..

  ABC,DEF,GHI....

3 组字符不允许使用逗号分隔的数字,

谁能帮帮我。

【问题讨论】:

    标签: c# asp.net validation


    【解决方案1】:

    我的建议是使用以下代码:

    string toBeTested = ...
    Match m = Regex.Match(toBeTested, "^[a-zA-Z]{3}(\\,[a-zA-Z]{3})*$");
    

    a-zA-Z 匹配一个字母

    {3} 正好三倍

    然后是一组逗号(转义)后跟三个字母(* == 零次或多次)

    ^ 表示字符串的开头 $ 表示字符串的结尾

    这意味着你的整个字符串应该被验证

    【讨论】:

    • 它还匹配诸如“ABC”之类的字符串 - 如果您希望其中至少包含一个逗号,请将 * 替换为 +
    【解决方案2】:

    这是匹配 A-Z 之间任何内容的正则表达式

    var resultString = System.Text.RegularExpressions.Regex.Match(subjectString, "[a-zA-Z]{3},").Value;
    

    【讨论】:

    • 由于您的问题仍然存在,我尝试了 ^([a-z]{3}+)(,\s*[a-z]{3}+)*$ 仍然无法得到我的结果,请您帮忙帮助,我不能限制字符
    • 限制字符是什么意思?你想要一些特定的字符?或者如果有数字,你希望它跳过吗?
    【解决方案3】:

    "([a-zA-Z]{3},)+" 我认为逗号不应该被转义,否则它会像 \,

    【讨论】:

    • 好吧 [a-zA-Z] 用于拉丁符号的大写和小写。 {3} 表示应该恰好有 3 个,逗号代表逗号 :) () 组合整个表达式,+ 号表示 ith 应该在字符串中出现一次或多次
    【解决方案4】:

    这对我有用。

        string s = "ABC,DEF,GHI";
    
        Match match = Regex.Match(s, "^([a-zA-Z]{3},)+[a-zA-Z]{3}$");
    
        if (match.Success) {
            Console.WriteLine("String passes");
        } else {
            Console.WriteLine("String fails");
        }
    

    【讨论】:

      【解决方案5】:

      这样的?

      (\S{3},)+(\S{3})$
      

      【讨论】:

      • 这里我也想要字符限制
      • 你想要什么字符限制?
      • 这个也匹配由长度为 3*k 的字母组成的字符串
      • @woj2ch 是的,我错了“?”符号。感谢您向我指出这一点。
      猜你喜欢
      • 2021-05-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多