[英]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.