RegEx для сопоставления цифр и одной точки с квантификатором - PullRequest
2 голосов
/ 17 мая 2019

У меня есть определенный образец, который я пытаюсь получить. Шаблон, который я ищу, выглядит следующим образом: 13 цифр с возможной точкой на общую сумму не менее 3 и не более 13 цифр (включая точку, если имеется) и заканчивающуюся символом "/" и числом от 1 до 6.

на данный момент у меня есть этот шаблон

^(\d*|\d*\.?\d*)\/[1-6]$

но это соответствует 1234/1 или 123456.890123456778 / 2

но это не то, что мне нужно

Я попробовал несколько вещей, но мне кажется, что я что-то упустил

^(\d*|\d*\.?\d*){3-13}\/[1-6]$

Возможное совпадение:

  • 1,3 / 1
  • 123456. / 2
  • 123456,890123 / 3
  • 1234567890123/4

Как мне решить эту проблему?

1 Ответ

1 голос
/ 17 мая 2019

Ваши формулировки немного сбивают с толку, но если я вас правильно понял, вы можете использовать это регулярное выражение,

^(?=.{5,15}$)\d+\.?\d*\/[1-6]$

Пояснение:

  • ^ - начало строки
  • (?=.{5,15}$) - этот позитивный взгляд вперед гарантирует, что минимальная длина равна 5, а максимальная длина равна 15 (добавляя два для последнего слеша и числа)
  • \d+\.?\d* - Начинает захват текста с одной или несколькими цифрами, за которыми следует необязательная точка . и далее больше нуля или более цифр
  • \/[1-6] - соответствует косой черте и от одной до шести цифр
  • $ - конец строки

Regex Demo

Дайте мне знать, если это хорошо для вас, перечислите случай, для которого он не работает.

...