Match match = Regex.Match("555-5555555", "^(\\d{3}\\-?\\d{3}\\-?\\d{4})$", RegexOptions.None);
it["Should match"] =() => match.Success.should_be_true();
Вышеупомянутый должен соответствовать, я верю. Я требую номера, но оставляю дефисы как необязательные. Тем не менее, приведенное выше возвращает false и не проходит тест.Попытка сопоставить простой номер телефона C# Regex
Редактировать
Принимается ответ, как Дарин правильно, что-то не так с моей тестовой области. Вот мой обновленный код:
Match match;
void describe_example()
{
context["goodregex"] =() =>
{
before =() => match = Regex.Match("555-5555555", "^(\\d{3}\\-?\\d{3}\\-?\\d{4})$", RegexOptions.None);
it["Should match"] =() => match.Success.should_be_true();
};
context["badregex"] =() =>
{
before =() => match = Regex.Match("555-5525-5555", "^(\\d{3}\\-?\\d{3}\\-?\\d{4})$", RegexOptions.None);
it["Should not match"] =() => match.Success.should_be_false();
};
}
'match.Success' истинно на моей машине. – dtb
То же самое здесь :) Он возвращает true. Btw Я рекомендую использовать оператор «как есть» (или verbatum) при написании строки Regex. Это очень запутанно: '@"^(\ d {3} \ -? \ D {3} \ -? \ D {4}) $ "' –
Является ли 'it [" Should match "]' когда-либо установленным на предоставленная линия? –