Jassim Rahma Ответов: 3

Регулярное выражение для суммы со знаком доллара


Привет,

Для чего лучше всего использовать регулярное выражение?Нетто для следующего номера:

1. показать символ валюты $
2. Mminimum количество 2000 года
3. Максимальное число-1000000
4. Нет знаков после запятой
5. Запятая не нужна


Спасибо,
Джассим

Что я уже пробовал:

^\$(\d{1,3}(\,\d{3})*|(\d+))(\.\d{2})?$

3 Ответов

Рейтинг:
2

OriginalGriff

Честно говоря, я бы не стал использовать регулярное выражение - Я бы использовал TryParse:

NumberStyles styles = NumberStyles.Integer | NmberStyles.AllowCurrencySymbol;
CultureInfo provider = new CultureInfo("en-US");
if (int.TryParse(stringToConvert, styles, provider, out number))
    {
    if (number >= 2000 && number <= 1000000)
        {
        ...


Рейтинг:
2

Patrice T

Цитата:
Для чего лучше всего использовать регулярное выражение?Нетто для следующего номера

Я бы использовал регулярное выражение, чтобы соответствовать шаблону, а затем проверял значение в коде.
^\$(\d{1,3}(\,?\d{3}){1,2})$

Всего лишь несколько интересных ссылок, которые помогут построить и отладить регулярное выражение.
Вот ссылка на документацию по регулярным выражениям:
perlre - perldoc.perl.org[^]
Вот ссылки на инструменты, помогающие создавать регулярные выражения и отлаживать их:
.Объем тестер регулярное выражение - регулярное выражение шторм[^]
Регулярное Средство Выражения Эспрессо [^]
RegExr: Learn, Build, & Test RegEx[^]
Онлайн-тестер регулярных выражений и отладчик: PHP, PCRE, Python, Golang и JavaScript[^]
Этот пример показывает вам регулярное выражение в виде красивого графика, который действительно полезен для понимания того, что делает регулярное выражение: Debuggex: онлайн-тестер визуальных регулярных выражений. JavaScript, Python и PCRE.[^]
Этот сайт также показывает регулярное выражение в красивом графике, но не может проверить, что соответствует регулярному выражению: Regexper[^]


Рейтинг:
0

honey the codewitch

Хотя теоретически возможно сопоставить минимальные и максимальные значения с регулярным выражением, вам придется сделать это
100|101|102|103...
весь путь через ваш диапазон (есть несколько более коротких путей, но людям трудно их вычислить)

Я согласен с OriginalGriff

Это проще сделать с помощью TryParse/Parse