Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 6或8位的正则表达式_C#_Regex - Fatal编程技术网

C# 6或8位的正则表达式

C# 6或8位的正则表达式,c#,regex,C#,Regex,有人能帮我用C#正则表达式来满足下面的要求吗 应以1开头,长度应为6位 应以7开头,长度应为6位 长度应为8位 更新: 道歉没有澄清要求。它们是个别情况,即我所需要的只是这些特定情况的正则表达式(即总共3个)。这里是: ^((1|7)\d{5}|\d{8})$ 或在NullUserException之后ఠ_ఠ 忠告: ^([17]\d{5}|\d{8})$ 不是正则表达式,现在验证正确的整数并将其保存到输出中: string digits = ... bool valid; char fir

有人能帮我用C#正则表达式来满足下面的要求吗

  • 应以1开头,长度应为6位
  • 应以7开头,长度应为6位
  • 长度应为8位
  • 更新: 道歉没有澄清要求。它们是个别情况,即我所需要的只是这些特定情况的正则表达式(即总共3个)。

    这里是:

    ^((1|7)\d{5}|\d{8})$
    
    或在NullUserException之后ఠ_ఠ 忠告:

    ^([17]\d{5}|\d{8})$
    

    不是正则表达式,现在验证正确的整数并将其保存到
    输出中

    string digits = ...
    bool valid;
    char firstChar;
    int output;
    
    switch(digits.Length) 
    {
        case 6:
            firstChar = digits[0];
            valid = firstChar == '1' || firstChar == '7';
            break;
        case 8:
            valid = true;
            break;
        default:
            valid = false;
            break;
    }
    
    if (valid && int.TryParse(digits, out output))  
    {
        ...
    }
    

    它不能满足所有这些要求:)这是非常具体的要求。您能给出一些您想要匹配的示例吗?我还将介绍一种非正则表达式方法,特别是当它是需要性能调优的代码的一部分时。手工编写的微调方法将在100次中超过等价正则表达式99次。从可维护性的角度来看,非正则表达式代码可能更容易理解。嗨@Jason McCreary,我已经更新了我的需求。+1。除非我们还不知道(8位数长)条件是否包括以1和7开头的条件。你确定这不是正则表达式吗?为什么不
    bool valid=Regex.IsMatch(digits,@“^([17]\d{5}\d{8})$”
    而不是13行代码(这是错误的)@NullUserExceptionఠ_ఠ, 现在它是这样的,当你做的时候,你得到了实际的整数。现在它是好的,但是它需要被重写,以防在某种原因下,8位数的限制会增加到10@zerkms,如果需要,它可以使用很长的时间