判断 正负整数,正负小数
表达式: ^[+-]?([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,} 表示至少匹配一个以上,在模式后面加上大括号配和次数表示量词,形式为{下限,上限}