asp.net mvc动态正则表达式变量

时间:2010-12-14 16:37:04

标签: regex asp.net-mvc

我正在动态验证正则表达式来自数据库

的正则表达式

好的,所以\取代\\ which is not validating the email

我有Regex RegExp = new Regex("@" + IsMandatoryTextTextAreaFiles.vcr_RegularExpression, RegexOptions.Compiled);

其中IsMandatoryTextTextAreaFiles.vcr_RegularExpression=\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

那现在该怎么办?

1 个答案:

答案 0 :(得分:1)

不,\不会被\\取代,我的猜测是你正在查看调试器中的值,其中显示字符串,因为它将被写为字符串文字代码。

连接字符串"@"和其他字符串并不会使它成为文字字符串,即"@" + "asdf"@"asdf"不同,它只是"@asdf"。这意味着@成为模式的一部分。只需按原样使用字符串:

Regex RegExp = new Regex(IsMandatoryTextTextAreaFiles.vcr_RegularExpression, RegexOptions.Compiled);

请注意,正则表达式仅验证字符串包含有效的电子邮件,而不是是有效的电子邮件。例如,字符串"Here: asdf@asdf.com dear sir"将通过测试。

您可以使用^$在正则表达式中指定字符串的开头和结尾:

^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$