2017-04-17 12 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(パターン);'その後、Googleが何をするのかを指定します。 –

答えて

-1

ここに移動します。この例では、C#でRegexを使い始める必要があります。

私はまたConsole.ReadLine()whileループにラップしたので、移動する前に正しいデータを入力する必要があります。

あなたは、ファイルの先頭にusing System.Text.RegularExpressions;を追加してください。この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(); 

でアクションのコードを見ることができます。

+0

これは私に何をすべきかの良いアイデアを与えます。この例をありがとうございます。私はここから残りの部分を理解することができると思います。今では正規表現がどのように機能するかを知ることができます。 – Shade

+0

うれしい私は助けることができました!今日私は時間があれば、答えを編集してコードをもう少しきれいにするでしょう。 –

+0

何らかの理由で、誰かが私にそれがどのように表示されるかを示すと、説明のページやページよりもコードを理解するのに役立ちます。だから私は本当にあなたの助けに感謝しています! – Shade