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