我需要一个可以匹配模式或为空的正则表达式。
目前我有一个表达式...
"\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x"
......匹配美国电话号码。然而,测试字符串为空是有效的。如果字符串中有任何值,则必须与表达式匹配。
我还有其他模式可以匹配美国邮政编码等,它们需要相同的条件。
在同一表达式中实现这一点的最佳方法是什么?
澄清:我正在使用来自Microsoft的验证应用程序块中的RegexValidator。以下是使用此功能的示例:
[StringLengthValidator(0, 100, MessageTemplate = "Email must be between {3} and {5}")]
[RegexValidator(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*", MessageTemplate = "Valid Email Required.")]
public string EmailAddress
{
get { return _EmailAddress; }
set { SetValue<string>(ref _EmailAddress, value); }
}
这就是为什么我需要解决方案只能用一个表达式来实现。