Почему Regex неправильно определяет число?
От: s_aa Россия  
Дата: 17.05.17 08:24
Оценка:
private bool IsNumber(string s)
{
    return Regex.IsMatch(s, @"[+-]?\d+(\.\d+)?", RegexOptions.Compiled);
}


s = "p1234", а функция возвращает true. Почему так?
Жизнь не обязана доставлять удовольствие. Достаточно отсутствия страданий.
Re: Почему Regex неправильно определяет число?
От: TG  
Дата: 17.05.17 09:12
Оценка: 4 (2) +2
Здравствуйте, s_aa, Вы писали:

_>
_>private bool IsNumber(string s)
_>{
_>    return Regex.IsMatch(s, @"[+-]?\d+(\.\d+)?", RegexOptions.Compiled);
_>}
_>


_>s = "p1234", а функция возвращает true. Почему так?


Вы не указали, что соответствие должно обнаруживаться в начеле и в конце строки (^ и $ соответственно).
Правильный шаблон:

"^[+-]?\d+(\.\d+)?$"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.