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

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

  1. 软件构造——浅谈正则表达式

    正则表达式是烦琐但是强大的,可以极大的提高代码的效率,目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很 ...

  2. 【Python正则表达式】网址合法性检测

    网址合法性检测规则 实现一个函数heck_web_address用于检测网址是否是一个顶级域名.规则如下: 网址名包括字母,数字,下划线,横杠(-), 点号(.) 和 加号(+); 后面紧跟着 .和顶 ...

  3. 哈工大2022软件构造Lab3

    说明 此博客内容为哈工大2022春季学期软件构造Lab3:Reusability and Maintainability oriented Software Construction,文章为个人记录, ...

  4. [HITSC]哈工大2020春软件构造Lab3实验报告

    Github地址 1 实验目标概述 本次实验覆盖课程第 3.4.5 章的内容,目标是编写具有可复用性和可维护 性的软件,主要使用以下软件构造技术: 子类型.泛型.多态.重写.重载 继承.代理.组合 常 ...

  5. HIT 软件构造 lab3实验报告

    2020年春季学期 计算机学院<软件构造>课程 Lab 3实验报告 姓名 赵旭东 学号 1180300223 班号 1803002 电子邮件 1264887178@qq.com 手机号码 ...

  6. 2022哈工大软件构造lab1小结(知识点)

    哈工大软件构造lab1小结 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 问题一 使用的库 异常处理机制 字符串内容检查 写入文件 问题二 problem 3:画一 ...

  7. 哈工大软件构造lab3

    2020年春季学期 计算机学院<软件构造>课程 Lab 3实验报告 1 实验目标概述 1 2 实验环境配置 1 3 实验过程 1 3.1 待开发的三个应用场景 1 3.2 面向可复用性和可 ...

  8. 【哈工大软件构造】学习笔记10 第十章、第十一章、第十二章

    目录 第十章 面向可维护性的构造技术 1 软件维护和演化 2 可维护性的度量 3 模块化设计和模块性准则 模块划分的五个准则 模块设计的五个原则 耦合度和聚合度 4 OO设计准则:SOLID SRP ...

  9. 2021哈工大软件构造期末考点复习笔记

    第一节 多维视图和质量目标 软件构造多维度视图 红色标注为重点(考试会考选择题) Moment 特定时刻的软件形态 Period 软件形态随时间的变化 AST (Abstract Syntax Tre ...

  10. HIT 软件构造 lab2实验报告

    2020年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 学号 1180300223 班号 1803002 目录 1 实验目标概述 1 2 实验环境配置 1 3 实验过程 1 3 ...

最新文章

  1. 利用Linux或者Windows操作系统做路由器进行网络互连
  2. datagridview cell字体大小自适应_CELL:肿瘤为何“饿不死”?神经元为饥饿胰腺癌提供营养支持...
  3. 从零开始学python网络爬虫-教你从零开始学会写爬虫(Python)
  4. Linux系统编程之查看文件大小的方法(lseek_fseek_stat)
  5. python如何导入matlab数据,python学习-python到matlab数据的传输
  6. android finish()传参数,48. (android开发) activity间传递数据(打开浏览器、拨号盘、传参)...
  7. JDK/Dubbo/Spring 三种 SPI 机制,谁更好呢?
  8. JSON 之 SuperObject(17): 实例 - 借用 Google 实现全文翻译
  9. android R vendor.boot-hal-1-1启动失败问题分析
  10. libevent evhttp学习——http服务端
  11. matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例
  12. 开放计算机应用基础形考3,国家开放大学《计算机应用基础》考试与答案形考任务模块3 模块3 Excel 2010 电子表格系统—客观题答案.doc...
  13. 智能建造与建筑工业化协同发展主战场之一:攻克核心工业软件
  14. 共享一个免费2G全能空间
  15. 「GoTeam 招聘时间」深信服科技 Go 开发工程师(成都)
  16. @Prometheus监控数据库(MySQL)
  17. 网站中的PV是什么意思?
  18. python 动态图形_在matplotlib中动态更新图形
  19. KubeCon China 2021 阿里云专场来了!这些首日亮点不容错过
  20. 【亲测可用】云之道知识付费v2独立版3.0.1全开源+前后端源码

热门文章

  1. 网络文学,为雪中打Call
  2. Easyrecovery激活码生成器分享
  3. 网易游戏再出新招:探索人脸识别功能
  4. c语言printf小数乘整数,如何将小数化为整数
  5. 39. 组合总和:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列
  6. 测评两款升压稳压芯片
  7. 微软Kinect for windows SDK 使用教程 (NUI部分)
  8. 微信公众号自动回复消息跳转小程序
  9. 广东省计算机一级技巧,广东省计算机一级
  10. codeforces:D1. Chopping Carrots (Easy Version)【最大最小值问题 + 控制一边让另一边尽量靠近 + 思维】