Регулярное выражение, чтобы не совпадать с числовой последовательностью, такой как «1111111111», 2, 3, 4 и т. Д.

#asp.net #regex

Вопрос:

Я хочу записать последовательную последовательность чисел в asp.net как повторяющиеся 1, 2 и так далее? Я пытался ^([0-9])1{3}$ и многие другие способы, но они не сработали для меня. Неужели на самом деле невозможно зафиксировать последовательное число?

Комментарии:

1. Как насчет чего — нибудь вроде… b(d)1*b ?

Ответ №1:

Да, это возможно, и, похоже, вы сделали это как

 Regex.IsMatch(text, @"^([0-9])1 $")
 

будет совпадать 111111 и 222222222222 т. Д.

См.Доказательство регулярного выражения.

объяснение

 --------------------------------------------------------------------------------
  ^                        the beginning of the string
--------------------------------------------------------------------------------
  (                        group and capture to 1:
--------------------------------------------------------------------------------
    [0-9]                    any character of: '0' to '9'
--------------------------------------------------------------------------------
  )                        end of 1
--------------------------------------------------------------------------------
  1                       what was matched by capture 1 (1 or more
                           times (matching the most amount possible))
--------------------------------------------------------------------------------
  $                        before an optional n, and the end of the
                           string