正则表达的麻烦

时间:2017-04-17 18:06:22

标签: c# regex

我似乎遇到正则表达式问题。我试图把它拿到一个人必须输入由空格分隔的名字和姓氏,只允许字母。对于信用卡,他们只能输入数字。我知道要使用的模式,但我不确定如何使用它们。

Console.Write("Enter your name for the card: ");
string name = Convert.ToString(Console.ReadLine());
string pattern; 
pattern = ("\b[a-zA-Z]{2,15}\s[a-zA-Z]{2,15}\b");
Console.Write("Enter your credit card number: ");
string card = Convert.ToString(Console.ReadLine());
pattern = "^[0-9]{12,19}$";
Console.WriteLine("Thank-you for ordering. ");

1 个答案:

答案 0 :(得分:-1)

你走了。这个例子可以让你开始在C#中使用Regex。

我还在Console.ReadLine()循环中包含了while,因此用户必须先输入正确的数据才能继续。

您可以使用此working fiddle

查看代码
// Get Full Name
string name = "";
while (!Regex.IsMatch(name, @"\b[a-zA-Z]{2,15}\s[a-zA-Z]{2,15}\b"))
{
    Console.Write("Enter your name for the card (Firstname Lastname): ");
    name = Console.ReadLine();
}

// Get Credit Card Number
string card = "";
while (!Regex.IsMatch(card, "^[0-9]{12,19}$"))
{
    Console.Write("Enter your credit card number: ");
    card = Console.ReadLine();
}

Console.WriteLine("Thank-you for ordering. ");
Console.Read();

务必将using System.Text.RegularExpressions;添加到文件顶部。