我需要与模式匹配的正则表达式或为空.
现在我有一个表达…
"\(?\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); } }
这就是为什么我需要一个表达式的解决方案.
将整个正则表达式包含在括号中并放置一个?最后:
原文链接:https://www.f2er.com/regex/357138.html(\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x)?