我似乎遇到正则表达式问题。我试图把它拿到一个人必须输入由空格分隔的名字和姓氏,只允许字母。对于信用卡,他们只能输入数字。我知道要使用的模式,但我不确定如何使用它们。
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. ");
答案 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;
添加到文件顶部。