java 正则表达式 指数

来源:互联网 发布:安卓运行php 编辑:程序博客网 时间:2024/05/08 11:26

由于业务的需要需要后台去验证正则表达式

前台脚本的正则表达式"^-?(\d{1}|((\d{1})\.)\d{1,6}|(\d{1}|((\d{1})\.)\d{1,6})\E[+,-]{0,1}\d{1,2})$"

成功验证指数没有问题。

到了java后台搞了有一会才完事,原来还有点不一样。本人对正则表达式也没学过,也只是现

用现学了。

最后java后台中这样写可以通过了"^-?(\d{1}|((\d{1})\.)\d{1,6}|(\d{1}|((\d{1})\.)\d{1,6})E[+,-]{0,1}\d{1,2})$"

\的意思是将下一字符标记为特殊字符、文本、反向引用或八进制转义符。

例如,“n”匹配字符“n”。“\n”匹配换行符。序列“\\”匹配“\”,“\(”匹配“(”。

可能这里E不是特殊字符,但在前台中E前面的\有没有都可以正常运行,不知所解。

java后台验证正则表达式两种方法

1)Pattern p = Pattern.compile("^-?\d{1,6}$");

    Matcher m = p.matcher("798563216");

    boolean result = m.matches();

当然还有find等方法。

2)直接字符串匹配如“1.2354”.matches("^-?\d{1,6}$");

 

find()方法是部分匹配,是查找输入串中与模式匹配的子串,如果该匹配的串有组还可以使用group()函数。

matches()是全部匹配,是将整个输入串与模式匹配,如果要验证一个输入的数据是否为数字类型或其他类型,一般要用matches()。

 

1的方法是先编译正则表达式,然后去建立匹配项,最后去执行匹配,这中方法如果匹配成功获得更多的信息

开始,结束,分组等信息。

2的方法是直接验证字符串是否匹配某个表达式。

 

希望对大家有点帮助。