正则表达式帮助表达NOT

时间:2011-03-31 19:34:32

标签: java regex

我需要在java中使用正则表达式来执行以下操作,

匹配 NOT 以下

的模式
  • 可选的负号(' - ')后跟
  • 一到四个数字后跟
  • 可选的点字符,后跟
  • 一个或多个零(如果有一个点)

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

行为低于

Expression找到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 个答案:

答案 0 :(得分:2)

^-?\d{1,4}(\.0+)?$

您需要使用程序本身来拒绝输入。也许匹配有效数字,然后拒绝与此匹配的任何内容,然后返回。

答案 1 :(得分:0)

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

这似乎与你的例子相符,但我仍然不确定你要用这个来完成什么。