регулярное выражение для проверки двойных значений

Я пытаюсь придумать регулярное выражение для проверки двойного значения. Я признаю, что я ничтожество в регулярных выражениях и действительно должен купить книгу ... В любом случае диапазон большой, так что здесь идет:

От 0,01 до 99,99 - это диапазон, где начальное «00» является необязательным, как и «.» и то же самое для конечного «.00». Таким образом, пользователь может ввести 0,1 00,01, 0,11, 1, 1,0 1,00, и все это будет действительным.

Спасибо, р.

 flavour40408 окт. 2010 г., 02:57
Спасибо, Алан, я учту это.
 Alan Moore04 окт. 2010 г., 02:43
Вы делаете это в C # (.NET) регулярное выражение? Если это так, вы должны избавиться отvisual-studio тег; VS имеет свой собственный вкус регулярных выражений, который сильно отличается от .NET. (Если кто-то предлагает использовать:nони говорят ВС.)

Ответы на вопрос(2)

 Mark Byers04 окт. 2010 г., 02:35
Не работает для всех примеров.
 eldarerathis04 окт. 2010 г., 02:38
Это также принимает 3 или 4-значные целые числа (100-999 и 1000-9999), а также пустую строку и строку.
 kartheek04 окт. 2010 г., 02:52
@ Марк Байерс, он работает для всех приведенных примеров: 0,1 00,01, 0,11, 1, 1,0 1,00. И, спасибо за указание на @eldarerathis - он соответствует целым числам 3/4 цифры и пустой строке: - /
Решение Вопроса

sTryParse метод?

string[] sa = new string[] { "00.01", "1.00", "xx" };
double d;
bool isValid;
foreach (string s in sa)
{
    isValid = double.TryParse(s, out d) && d >= 0.01d && d <= 99.99d;
    Console.WriteLine("{0}: {1}", s, isValid.ToString());
}
 Mark Byers04 окт. 2010 г., 02:36
+1 за предложение не использовать регулярные выражения, хотя ваш ответ неполон - вы должны отредактировать его, чтобы добавить проверку диапазона.
 flavour40404 окт. 2010 г., 02:53
Спасибо за предложение tryparse () по какой-то причине, я использовал выражения reg и застрял в мышлении ... tryparse было намного проще реализовать ... lol спасибо.
 dtb04 окт. 2010 г., 02:27
Это даже работает с неамериканскими культурами! +1
 Mr.B09 сент. 2018 г., 11:41
Иногда требуется регулярное выражение. Например, при использовании атрибутов: [RegularExpression (ConstIntRegex, ErrorMessage = ConstValidationMessage)]
 RedFilter01 нояб. 2010 г., 18:36
Почему отрицательный голос?
 RedFilter04 окт. 2010 г., 03:22
Добавлена ​​проверка дальности, пропущена эта часть.
 Michael Petrotta04 окт. 2010 г., 02:20
&& d >= 0.01m && d <= 99.99m

Ваш ответ на вопрос