c# - 年间隔的正则表达式

标签 c# regex enterprise-library

在 C# 中,我想编写一个正则表达式,它只接受 1900 到 2099 之间的年份。

我尝试了 ^([1][9]\d\d|[2][0]\d\d)$,但这不起作用。有什么想法吗?

所以我在类里面:

    [NotNullValidator(MessageTemplate = "Anul nu poate sa lipseasca!")]
  //  [RangeValidator(1900, RangeBoundaryType.Inclusive, 2100, RangeBoundaryType.Inclusive, MessageTemplate = "Anul trebuie sa contina 4 caractere!")]
    [RegexValidator(@"(19|20)\d{2}$", MessageTemplate = "Anul trebuie sa fie valid!", Ruleset = "validare_an")]
    public int anStart
    {
        get;
        set;
    }

在测试方法中:

[TestMethod()]
public void anStartTest()
{
    AnUnivBO target = new AnUnivBO() { anStart = 2009 };
    ValidationResults vr = Validation.Validate<AnUnivBO>(target, "validare_an");
    Assert.IsTrue(vr.IsValid);
}

为什么会失败?

最佳答案

试试这个:

^(19|20)\d{2}$

关于c# - 年间隔的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2124584/

相关文章:

c# - 尝试获取 ICacheManager 类型的实例时发生激活错误, key "Cache Manager"

enterprise-library - EnterpriseLibrary.Caching 组件是否已停止使用,如果是,从哪个库版本开始停止?

c# - 如何将二维字节数组转换为一维字节数组

c# - 如何以线程安全的方式增加(增加值)小数?

C# - 解析网页的最佳方法?

java - 正则表达式 - 组值替换

javascript - 是否有任何 Javascript 函数可以从指定索引进行正则表达式匹配

python - 使用 Python 和 Regex 提取不同格式的日期

c# - Mac OS 上的 unity 3d build 问题

logging - Azure 网站和企业库日志记录