簡體   English   中英

為什么我的代碼無法編譯?

[英]Why doesn't my code compile?

我在文件后面的代碼中使用正則表達式並將字符串定義為

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

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

它會警告我並且無法編譯。 如何定義這樣的字符串組合?

在C#中,反斜杠是一個特殊字符,如果要表示反斜杠,則需要這樣通知編譯器。

這可以通過使用反斜杠轉義來實現:

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

或在構造字符串時使用@前綴:

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

反斜杠是C#字符串中的轉義字符。 從技術上講,您必須使用另一個反斜杠( "\\\\" )來轉義反斜杠,或者僅在字符串之前添加一個@

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

使用@"\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*"這樣反斜杠將被轉義

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM