2017-04-17 50 views
-1

我似乎遇到了正则表达式的麻烦。我试图找到一个人必须输入由空格隔开的名字和姓氏的地方,并且只允许使用字母。对于信用卡,他们只能输入数字。我对使用的模式有了一个概念,但我不确定如何正确使用它们。正则表达式的麻烦

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

'Console.ReadLine()'返回一个'string',所以你不需要'Convert.ToString' – juharr

+0

你使用模式的地方在哪里?你会得到什么结果?你能指望什么? – juharr

+0

'var rePattern = new System.Text.RegularExpressions.Regex(pattern);'然后google怎么处理它。 –

回答

-1

你在这里。这个例子会让你开始在C#中使用正则表达式。

我也在中包含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;到文件的顶部。

+0

这给了我一个更好的想法做什么。感谢你的例子。我想我可以从这里找出其余的,现在我对正则表达式的工作原理有了更好的了解。 – Shade

+0

很高兴我能帮到你!如果我今天有空,我会编辑答案并再次清理代码。 –

+0

由于某些原因,当有人向我展示它是如何完成时,它可以帮助我更好地理解代码,而不是页面和解释页面。所以我真的很感激你的帮助! – Shade