2012-01-26 85 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

以前從未遇到過這種情況現在會記住我的餘生。感謝您的快速回放和清晰的解釋。當你第一次回答這個問題時,我會標記你的答案。感謝其他人也回答了答案。 – Learning

1

使用@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"所以反斜槓將得到逃脫

2

這可以通過使用一個反斜槓它可以實現

反斜槓是c#字符串中的轉義字符。從技術上講,你必須轉義反斜線與另一blackslash("\\"),或者只是你的字符串前添加一個@

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