【软件构造】正则表达式合法性检测

【软件构造】正则表达式合法性检测_第1张图片

复习时见到了这个问题,帮助我们了解如何使用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中可以用[ ]来表示

你可能感兴趣的:(软件构造,正则表达式)