C# 正则表达式问题

C# 正则表达式问题,c#,regex,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

我似乎在正则表达式方面遇到了问题。我试着让这个人输入名字和姓氏,名字和姓氏之间用空格隔开,只允许字母。对于信用卡,他们只能输入数字。我对要使用的模式有一个想法,但我不确定如何准确地使用它们

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. ");

给你。这个例子应该让您开始在C#中使用正则表达式

我还将
Console.ReadLine()
包装在
while
循环中,因此用户必须在继续之前输入正确的数据

您可以看到使用此操作的代码


确保使用System.Text.RegularExpressions添加
到文件顶部。

Console.ReadLine()
返回一个
字符串
,因此您不需要
Convert.ToString
使用模式的代码在哪里?你得到了什么结果?你期望什么?
var rePattern=newsystem.Text.RegularExpressions.Regex(模式)
然后用谷歌搜索怎么处理它。
if(Regex.IsMatch(card,pattern)){/*valid*/}
@juharr我不确定是否有人知道用空格分隔的名字和姓氏的模式是什么。我知道它类似于
pattern+=nfi.(插入patern).ToString()+“\b[a-zA-Z]{2,15}[a-zA-Z]{2,15}\b”。我试着研究正则表达式,但能找到一个用于该特定函数的正则表达式。这让我更好地了解了该怎么做。谢谢你的例子。现在我对正则表达式的工作原理有了更好的了解,我想我可以从这里了解其余的内容。很高兴我能帮上忙!如果我今天有时间的话,我会编辑答案,把代码整理得更干净一点。出于某种原因,当有人向我展示它是如何完成的时,它比一页又一页的解释帮助我更好地理解代码。所以我真的非常感谢你的帮助!为您清理了一点代码。谢谢您的帮助!
// 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();