创建正则表达式以匹配带有字母后跟固定位数的字符串

我们有一个用例,我们需要Uid使用以下约束验证一些用例:


在形式lenght 5的UID annnnn其中一个比其它任何字母A,B,D和E。而n是从0到 的任意数字9。


所以我创建了新方法,它将验证相同并按预期工作。


/// <summary>

/// Validate Uid of lenght 5 in form annnnn where ‘a’ is any letter other than A, B, D and E.

/// </summary>

/// <param name="value"></param>

/// <returns></returns>

private static bool IsValidUid( string value )

{

    bool returnValue = false;


    if (string.IsNullOrEmpty(value) == false && value.Length == 5)

    {

        char firstChar = value[0];

        bool firstCharFailed = false;


        switch (firstChar)

        {

            case 'A':

            case 'B':

            case 'D':

            case 'E':

                firstCharFailed = true;

                break;

        }


        if (firstCharFailed == false)

        {

            string remainingStr = value.Substring(1, 4);


            int numb;


            if (int.TryParse(remainingStr, out numb) == true)

            {

                returnValue = true;

            }

        }

    }


    return returnValue;

}

但它可以通过正则表达式有效地完成。因为我不擅长它,所以我需要帮助为我创造一个!提前致谢!!


手掌心
浏览 286回答 1
1回答

白衣非少年

其中“a”是除 A、B、D 和 E 之外的任何字母。因此,在这种情况下,您需要指定允许的字母集[a-zF-ZC]&nbsp;=> 表示所有字母都在 az 范围内,FZ 应该匹配,C 也应该匹配'n' 是 0 到 9 之间的任何数字。\d&nbsp;匹配一个数字,或者您可以使用&nbsp;[0-9]长度为 5 的形式 annnnn\d{4}&nbsp;指定应该匹配的前一个字符的数量最后一件事必须做。您需要指定,它a应该在字符串的开头,并且字符串在第 5 个字符之后结束:^表示字符串的开始表示字符串$的结束。所以结合起来看起来像这样:string&nbsp;pattern&nbsp;=&nbsp;@"^[a-zF-ZC]\d{4}$或使用数字范围:string&nbsp;pattern&nbsp;=&nbsp;@"^[a-zF-ZC][0-9]{4}$这是正则表达式模式的概述以及示例和解释这是一个站点,您可以在其中测试和试用您的正则表达式模式。摆弄它以了解它。它有助于编辑:在[...]表示一组将被匹配的字符。范围使用-像 in&nbsp;a-z、A-F或 之类的符号来表示5-9。任何其他字符都可以简单地放入集合中:[abcdefgxyz]&nbsp;将只匹配那些指定的字母!集合和范围可以组合[CF-SX-Z]将匹配C或之间的所有大写字母F和S之间X和Z。我希望现在变得更清楚
打开App,查看更多内容
随时随地看视频慕课网APP