如何使用正则表达式验证我的字符串?

时间:2015-05-05 21:37:20

标签: c# regex string methods

我正在尝试使用一种方法来验证字符串,该字符串在开头有两个大写字母,之后有3个数字。我现在写的那个是:

static void Main(string[] args)
{
    Console.WriteLine("Enter stock quantity:");
    string qty = Console.ReadLine();

    string code = enterStockCode();
}

static string enterStockCode()
{
    string[] pLetters = new string[] { "BL", "FS", "HJ", "PX" };

    bool isValid = false;
    while (isValid == false)
    {
        Console.WriteLine("Enter stockcode:");
        string stockCode = Console.ReadLine();

        char[] stockCodeSplit = stockCode.ToCharArray();
        var vLetters = (stockCodeSplit[0] + stockCodeSplit[1]);
        var vNumbers = (stockCodeSplit[2] + stockCodeSplit[3] + kCodeSplit[4]);
        // I'd like to know if there is a better way of splitting this string
        // by using regular expressions or another way.


        foreach (var Letter in pLetters)
        {
            if (vNumbers.ToString() == Letter)
            {
                if (Regex.Match(vNumbers.ToString(), @"^\d[0-9]{2}$").Success)
                    return stockCode;
                Console.WriteLine("Invalid stock code");
            }
        }
    }

    return "Invalid";
}

(另外我想知道“2”中的“2”:

@"^\d[0-9]{2}$"

表示2次或3次,因为c#使用索引0。)

任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:2)

请尝试:

^[A-Z]{2}\d{3}

如果你只是想找到一个以2个大写字母后跟3个数字开头的表达式,你不应该设置一个结束限制器,只需要开始。

2表示2次。