Potrzebuję wyrażenie regularne pasujące do wzorca lub jest puste.Jakie wyrażenie regularne będzie pasowało do wzorca lub będzie puste?
Teraz mam wyrażenie ...
"\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/x"
... które pasuje US numerów telefonów. Jednak jest ważne, aby ciąg, który testuję, był pusty. Jeśli łańcuch ma jakąkolwiek wartość, musi być zgodny z wyrażeniem.
Mam inne wzory, które pasują do amerykańskich kodów pocztowych itp., Które wymagają tego samego warunku.
Jaki jest najlepszy sposób osiągnięcia tego w tym samym wyrażeniu?
Wyjaśnienie: Używam RegexValidator w bloku Application Validation Block firmy Microsoft. Przykładem wykorzystania tego jest następujący:
[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); }
}
Dlatego muszę rozwiązanie będzie w jednej wypowiedzi.
Co oznacza/x na końcu wyrażenia regularnego? W Perlu lub PHP oznaczałoby to tryb wolnego odstępu, ale .NET nie używa tej składni. –
Ah .. nie wiem właściwie. Właśnie zdjąłem to z jakiegoś serwisu. Usuwam to i zobaczę, czy to pomaga. –