【问题标题】:Quantifier {x,y} following nothing量词 {x,y} 无后缀
【发布时间】:2018-09-11 23:55:08
【问题描述】:

当我尝试在我的程序上验证电子邮件和电话号码时,我遇到了这样的异常。

错误:正则表达式编写正确,我不知道问题出在哪里。

我阅读了最后一篇文章,但我的情况有任何工作。

消息:System.ArgumentException:解析 '{2}[0-9]-{3}[0-9]' - 量词 {x,y} 无后缀。

public class Order
{
    public string EmailValidationPattern = "{2}[0-9]-{3}[0-9]";

    public string ZipCode { get; set; }
    public string PhoneNumber { get; set; }

    private void SetZipCode(string zipCode)
    {
        if (Regex.Match(zipCode, EmailValidationPattern).Success)
        {
            ZipCode = zipCode;
        }
    }

    private void SetPhoneNumber(string number)
    {
        if (Regex.Match(number, @"^(\+[0-9]{9})$").Success)
        {
            PhoneNumber = number;
        }
    }
}

【问题讨论】:

  • {2} 前面必须有一些东西。也许你的意思是[0-9]{2}
  • 正则表达式没有“正确写入”,这就是出现错误的原因。
  • "错误:正则表达式编写正确,我不知道问题出在哪里。"什么?没有这样的错误。 “我阅读了最后一篇文章,但我的情况下任何工作。”你的问题很不清楚,措辞也很糟糕。请看stackoverflow.com/help/how-to-ask
  • 奇怪的是,您调用变量EmailValidationPattern 并将其完全用于验证电子邮件地址。

标签: c# unit-testing


【解决方案1】:

替换 {2}[0-9]-{3}[0-9][0-9]{2}-[0-9]{3}

量词出现在要匹配的表达式之后。 [0-9]{3}

另外,您可以使用http://regexstorm.net/tester 之类的方式在线测试您的表情

【讨论】:

    【解决方案2】:

    我不完全确定您要完成什么,但看起来您只是在寻找数字字符...

    仅适用于数字:

    Regex regex = new Regex(@"^\d$");
    

    对于字母数字:

    Regex r = new Regex("^[a-zA-Z0-9]*$");
    

    【讨论】:

      猜你喜欢
      • 2023-01-12
      • 1970-01-01
      • 1970-01-01
      • 2017-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多