Помощь по регулярному выражению для выражения НЕ - PullRequest
0 голосов
/ 31 марта 2011

Мне нужно регулярное выражение в Java, которое выполняет следующее,

Соответствует шаблону, который НЕ следующий

  • Необязательный отрицательный знак ('- '), за которым следует
  • От одного до четырех чисел, за которыми следует
  • Необязательный символ точки, за которым следует
  • один или несколько нулей (если есть точка)

(?!-{0,1}\\d{1,4}\\.{0,1}0{1,4})

Поведение ниже

Выражение находит совпадение для 1 Выражение не находит совпадение для 1,0

, когда оно конусно, чтобы переопределить егоиногда я получаю более простое решение, если я спрашиваю, что мне нужно сделать, в отличие от вопросов о внутренней работе.

В моем случае

Я хочу поймать комбинацию десятичных чисел, но что-то вроде 1.000 - это хорошо, но 1.0001 - не

Некоторые примеры

1           No match
1234        No match
99          No Match
1.000000    No match
123.000000  No Match
-123        No Match

1.01        Match
-1.1        Match
12345566    Match 

Ответы [ 2 ]

2 голосов
/ 31 марта 2011
^-?\d{1,4}(\.0+)?$

Вам нужно использовать саму программу, чтобы отклонить ввод.Возможно, сопоставьте действительные числа, затем отклоните все, что соответствует этому, затем верните.

0 голосов
/ 31 марта 2011

((-)?(\d){1,4}+(\.)?(0)*([1-9]+))

Кажется, это соответствует вашим примерам, но я все еще не уверен, что вы пытаетесь достичь с этим.

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