繁体   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