Мне нужно регулярное выражение, которое соответствует шаблону или пустое.
Сейчас у меня есть выражение...
"\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x"
..., который соответствует номерам телефонов США. Тем не менее, он действителен для строки, которую я тестирую, пустой. Если строка имеет какое-либо значение в ней вообще, она должна соответствовать выражению.
У меня есть другие шаблоны, которые соответствуют почтовым кодам США и т.д., которые нуждаются в одинаковых условиях.
Каков наилучший способ добиться этого в одном выражении?
Разъяснение. Я использую RegexValidator в блоке Application Validation из Microsoft. Примером использования этого является следующее:
[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); }
}
Вот почему мне нужно, чтобы решение находилось в одном выражении.