Qt: Regex max.9 цифр (Int и Float) - PullRequest
0 голосов
/ 05 июня 2019

Я хочу иметь регулярное выражение для: - целое число - плавать - Макс. 9 цифр

Это для Qt5

^[\d*[.,]?\d+]{0,4}$

без {0,4} регулярное выражение работает нормально. Эта версия прекрасно работает, но я хочу, чтобы максимум 9 цифр

\d*[.,]?\d+

Ответы [ 3 ]

2 голосов
/ 05 июня 2019

Вы можете использовать

^(?!(?:\D*\d){10})\d*[.,]?\d+$

См. Демонстрационную версию регулярных выражений и график регулярных выражений :

enter image description here

Детали

  • ^ - начало строки
  • (?!(?:\D*\d){10}) - сбой совпадения, если найдено 10 или более цифр
  • \d* - 0+ цифр
  • [.,]? - опционально . или ,
  • \d+ - 1+ цифр
  • $ - конец строки.
1 голос
/ 05 июня 2019

Как сказала Эмма, это сложно.

Мои предложения

(^\d{1}[,.]\d{1,8}$)|(^\d{2}[,.]\d{1,7}$)|(^\d{3}[,.]\d{1,6}$)|(^\d{4}[,.]\d{1,5}$)|(^\d{5}[,.]\d{1,4}$)|(^\d{6}[,.]\d{1,3}$)|(^\d{7}[,.]\d{1,2}$)|(^\d{8}[,.]\d{1,1}$)|(^\d{1,9}$)

Первая группа проверяет все числа с плавающей запятой одной цифрой до десятичной точки и от 1 до 8 десятичных знаков
Втораягруппа проверяет все числа с плавающей запятой с двумя цифрами перед десятичной точкой и от 1 до 7 десятичных знаков
Третья группа проверяет все числа с плавающей запятой с тремя цифрами перед десятичной точкой и от 1 до 6 десятичных знаков
И так далее ...
Последняя группа проверяет все целые числа от 1 до 9 цифр

W / o ^ и $ в каждой группе, она обнаружила последние 9 чисел в количестве 9+ цифр при использовании многострочного флага

jex.im

1 голос
/ 05 июня 2019

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

^\d{1,5}\.\d{1,4}$|^\d{1,9}$

Проблема здесь заключается в том, что это выражение также потерпит неудачу 111111.1, и это только одна вещь, которая создаст изощренность. Другое дело, что если мы хотим также включить запятые.

Демо

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...