【软件构造】正则表达式合法性检测
复习时见到了这个问题,帮助我们了解如何使用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中可以用[ ]来表示
【软件构造】正则表达式合法性检测相关推荐
- 软件构造——浅谈正则表达式
正则表达式是烦琐但是强大的,可以极大的提高代码的效率,目前,正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,以及很 ...
- 【Python正则表达式】网址合法性检测
网址合法性检测规则 实现一个函数heck_web_address用于检测网址是否是一个顶级域名.规则如下: 网址名包括字母,数字,下划线,横杠(-), 点号(.) 和 加号(+); 后面紧跟着 .和顶 ...
- 哈工大2022软件构造Lab3
说明 此博客内容为哈工大2022春季学期软件构造Lab3:Reusability and Maintainability oriented Software Construction,文章为个人记录, ...
- [HITSC]哈工大2020春软件构造Lab3实验报告
Github地址 1 实验目标概述 本次实验覆盖课程第 3.4.5 章的内容,目标是编写具有可复用性和可维护 性的软件,主要使用以下软件构造技术: 子类型.泛型.多态.重写.重载 继承.代理.组合 常 ...
- HIT 软件构造 lab3实验报告
2020年春季学期 计算机学院<软件构造>课程 Lab 3实验报告 姓名 赵旭东 学号 1180300223 班号 1803002 电子邮件 1264887178@qq.com 手机号码 ...
- 2022哈工大软件构造lab1小结(知识点)
哈工大软件构造lab1小结 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 问题一 使用的库 异常处理机制 字符串内容检查 写入文件 问题二 problem 3:画一 ...
- 哈工大软件构造lab3
2020年春季学期 计算机学院<软件构造>课程 Lab 3实验报告 1 实验目标概述 1 2 实验环境配置 1 3 实验过程 1 3.1 待开发的三个应用场景 1 3.2 面向可复用性和可 ...
- 【哈工大软件构造】学习笔记10 第十章、第十一章、第十二章
目录 第十章 面向可维护性的构造技术 1 软件维护和演化 2 可维护性的度量 3 模块化设计和模块性准则 模块划分的五个准则 模块设计的五个原则 耦合度和聚合度 4 OO设计准则:SOLID SRP ...
- 2021哈工大软件构造期末考点复习笔记
第一节 多维视图和质量目标 软件构造多维度视图 红色标注为重点(考试会考选择题) Moment 特定时刻的软件形态 Period 软件形态随时间的变化 AST (Abstract Syntax Tre ...
- HIT 软件构造 lab2实验报告
2020年春季学期 计算机学院<软件构造>课程 Lab 2实验报告 学号 1180300223 班号 1803002 目录 1 实验目标概述 1 2 实验环境配置 1 3 实验过程 1 3 ...
最新文章
- 利用Linux或者Windows操作系统做路由器进行网络互连
- datagridview cell字体大小自适应_CELL:肿瘤为何“饿不死”?神经元为饥饿胰腺癌提供营养支持...
- 从零开始学python网络爬虫-教你从零开始学会写爬虫(Python)
- Linux系统编程之查看文件大小的方法(lseek_fseek_stat)
- python如何导入matlab数据,python学习-python到matlab数据的传输
- android finish()传参数,48. (android开发) activity间传递数据(打开浏览器、拨号盘、传参)...
- JDK/Dubbo/Spring 三种 SPI 机制,谁更好呢?
- JSON 之 SuperObject(17): 实例 - 借用 Google 实现全文翻译
- android R vendor.boot-hal-1-1启动失败问题分析
- libevent evhttp学习——http服务端
- matlab怎么定义矩阵变量_MATLAB小技巧及策略制定实例
- 开放计算机应用基础形考3,国家开放大学《计算机应用基础》考试与答案形考任务模块3 模块3 Excel 2010 电子表格系统—客观题答案.doc...
- 智能建造与建筑工业化协同发展主战场之一:攻克核心工业软件
- 共享一个免费2G全能空间
- 「GoTeam 招聘时间」深信服科技 Go 开发工程师(成都)
- @Prometheus监控数据库(MySQL)
- 网站中的PV是什么意思?
- python 动态图形_在matplotlib中动态更新图形
- KubeCon China 2021 阿里云专场来了!这些首日亮点不容错过
- 【亲测可用】云之道知识付费v2独立版3.0.1全开源+前后端源码
热门文章
- 网络文学,为雪中打Call
- Easyrecovery激活码生成器分享
- 网易游戏再出新招:探索人脸识别功能
- c语言printf小数乘整数,如何将小数化为整数
- 39. 组合总和:给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列
- 测评两款升压稳压芯片
- 微软Kinect for windows SDK 使用教程 (NUI部分)
- 微信公众号自动回复消息跳转小程序
- 广东省计算机一级技巧,广东省计算机一级
- codeforces:D1. Chopping Carrots (Easy Version)【最大最小值问题 + 控制一边让另一边尽量靠近 + 思维】