复习时见到了这个问题,帮助我们了解如何使用assert对正则表达式进行合法性检测。
首先开启assert;
IDEA中Edit Configurations中要加入参数:-ea -Dfile.encoding=UTF-8 来使用assert
Pattern是对正则表达式进行编译之后得到的结果
Matcher利用Pattern对输入字符串进行解析
Pattern p = Pattern.compile(String regex) 将正则表达式编译到Pattern中,产生正则标准
Matcher m = p.macther(input); matcher产生正则验证器
If(m.matches( )){...}
以上三行相当于:
Pattern.compile(regex).matcher(input).matches() input满足regex的正则标准。
String input = "9.5";
String regex = "([1-9](\\.5)?)|10";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(input);
System.out.println(m.matches());//直观打印出true or false
assert m.matches();
或者直接调用String.matches()进行匹配:
assert input.matches("([1-9](\\.5)?)|10");
此时运行结果:
当input为非法输入,如0时,运行结果如下:assert后面为假,直接结束运行,抛出Java.lang.AssertionError错误:
另外,如果遇到空格,在Java中可以用[ ]来表示