Нужен regex для соответствия строке переменной длины чисел, которые не могут быть всеми нулями

Предположим, что если ваш массив состоит из следующих значений

int[] x = new int[] { 2, 2, 2, 2, 2 };

, то как вы можете найти максимальное значение, используя i++ внутри блока if. Вы застрянете в бесконечном цикле.

9
задан chaos 26 March 2009 в 23:18
поделиться

4 ответа

^(?!0+$)\d{1,19}$

18
ответ дан 4 December 2019 в 09:38
поделиться

(?! 0+ $), предварительная директива.?! отрицательная предварительная команда должна искать 1 или более 0 в конец строки. Если это соответствует, то символы используются, оставляя регулярный поиск цифры \d {1,19}.

Perl повышения Regexp имеет хорошее обсуждение жемчуга regexp, как распознано Повышением.

2
ответ дан 4 December 2019 в 09:38
поделиться

Просто сделайте отрицательное предвидение:

(?!^0+$)(^\d{1,19})

Это хорошо работает в Perl.

2
ответ дан 4 December 2019 в 09:38
поделиться

Вам не нужен RegEx для этого

            ulong test;
        string number = "1234567890123456789";
        if (ulong.TryParse(number, out test) && (test < 9999999999999999999ul) && (test > 0))
            Console.WriteLine(test);
0
ответ дан 4 December 2019 в 09:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: