Проверка формата строки на соответствие регулярному выражению

Нужно проверить соответствует ли строка следующим форматам телефонного номера: +79256878975 or 89265489675.

Для этого написал регулярное выражение вида:

Regex regexTelephone = new Regex(@"[+]?[0-9]{11}");

и с помощью его проверяю

if (regexTelephone.IsMatch(telephone))
                {
                    //...
                }

Вот эта часть [+]?, судя по документации, означает, что в начале строки символ "+" может встречаться 0-1 раза, но в моем случае он пропускает строки с 2-мя "+" - "++79226367891".


Ответы (1 шт):

Автор решения: SoulOFTrue

В комментариях к вопросу были даны верные подсказки. Оформлю ответом.

Самым правильным ответом, на мой взгляд, является решение @yar85:

Regex regexTelephone = new Regex(@"^\+?\d{11}$");

С другой стороны, моё решение более читаемо:

Regex regexTelephone = new Regex(@"^[+]{0,1}[0-9]{11}"); 

Для решения изложенной проблемы подходят оба, их можно использовать с одинаковой эффективностью.

→ Ссылка