繁体   English   中英

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

[英]create regex to match a string with a letter followed by fixed number of digits

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

长度为5的形式为annnn ,其中a是除ABDE以外A任何字母。 n09任何数字。

因此,我创建了一个新方法,该方法将验证相同方法并按预期工作。

/// <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;
}

但这可以通过正则表达式有效地完成。 由于我对它不好,因此需要帮助为我创建一个! 提前致谢!!

其中“ a”是除A,B,D和E以外的任何字母。

因此,在这种情况下,您需要指定允许的字母集

[a-zF-ZC] =>表示所有字母均在az和FZ范围内,应同时匹配C

“ n”是从0到9的任何数字。

\\d与数字匹配,或者您可以使用[0-9]

长度为5的表格,格式为annnnn

\\d{4}指定应该匹配的前一个字符的数量

最后一件事必须要做。 您需要指定a应该在字符串的开头,并且字符串在第5个字符之后结束:

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

所以结合起来看起来像这样:

string pattern = @"^[a-zF-ZC]\d{4}$

或使用数字范围:

string pattern = @"^[a-zF-ZC][0-9]{4}$

这是正则表达式模式概述,并带有示例和解释

这是一个可以测试并试用正则表达式模式站点 弄弄它以了解它。 它有助于

编辑:

[...]表示一个字符集,这将被匹配。 范围是使用表示-标志像azAF5-9 任何其他字符都可以简单地放入集合中:

[abcdefgxyz]仅匹配指定的字母!

设置和范围可以组合

[CF-SX-Z]将匹配CFS之间以及XZ之间的所有大写字母。 我希望它现在变得更清楚

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM