正则表达式判断数字

判断 正负整数,正负小数

表达式:      ^[+-]?([0]{1,1}|[1-9]{1,1}[0-9]*?)[.]?[\\d]{1,}$

import java.util.Scanner;

import java.util.regex.Pattern;

public static void main(String[] args) {

Pattern pattern = Pattern.compile("^[+-]?([0]{1,1}|[1-9]{1,1}[0-9]*?)[.]?[\\d]{1,}$");

Scanner sc = new Scanner(System.in);

while (sc.hasNext()) {

String sss = sc.nextLine();

System.out.println(pattern.matcher(sss).matches());

}

}

测试用例

-0.1        true
+0.1        true
0.1        true
1.0        true
-1.0        true
+1.0        true
0.01        true
-0.01        true
+0.01        true
01.1        false
10.1        true
10.01        true
10.        false
.01        false
-345        true
+456        true

345.345345        true
5.555346345        true
34534534535345345345353635353536353467345345345.345345346345346345685679564358560898345234645674569680545        true

567..778        false

表达式 ^[+-]?([0]{1,1}|[1-9]{1,1}[0-9]*?)[.]?[\\d]{1,}$ 解释

^和$ 界定符

()出现或的情况使用

|  或

* 表示n多个 0个匹配或者多个匹配

? 标识前面的条件可有可无

问号(?)和星号(*):跟在一个模式内容后面的是量词,用来限定模式内容匹配的次数

\\d 表示0-9的数字

{1,} 表示至少匹配一个以上,在模式后面加上大括号配和次数表示量词,形式为{下限,上限}

猜你喜欢

转载自blog.csdn.net/u010952056/article/details/109787298