2012-01-26 18 views
1

私はそれは私が警告を与え、コンパイルされませんなぜ私のコードはコンパイルされませんか?

string ValEmail = "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"; 

if (Regex.IsMatch(email, "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")) 
{ } 
else 
{ } 

として分離コードファイルと定義する文字列で正規表現を使用しています。どのようにこのような文字列の組み合わせを定義できますか?

+2

警告を投稿してください。 – Rhapsody

+1

エラーが発生した場合:**エラーを投稿してください。**私たちは霊的ではありません! – Blorgbeard

答えて

4

C#では、バックスラッシュは特殊文字です。バックスラッシュを表すには、コンパイラに通知する必要があります。

これは、バックスラッシュでエスケープすることによって達成することができます。

string ValEmail = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"; 

または文字列を構築する場合@接頭辞を使用して:

string ValEmail = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"; 
+0

Nowは私の人生の残りの部分を覚えておく前に、この事件に遭遇したことはありません。迅速なリプレイと明確な説明をありがとう。私はこの質問に最初に答えたときにあなたの答えを正確に記します。回答のある他の人にも感謝します。 – Learning

1

使用@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"ので、バックスラッシュが

2
エスケープされます

バックスラッシュはc#文字列のエスケープ文字です。技術的に、あなたは別のblackslash("\\")とバックスラッシュをエスケープまたはちょうどあなたの文字列の前@を追加する必要があります。

string ValEmail = @"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"; 
関連する問題