java使用正则表达式

news/2024/10/22 12:23:29/

这段Java代码首先定义了一个正则表达式,用于检查输入字符串formName是否符合特定格式。接下来,代码执行以下操作:
Pattern pattern = Pattern.compile("^1111(12|21)22[TF][0-9]{4}$");: 创建一个Pattern对象,该对象根据给定的正则表达式模式进行编译。这个模式要求字符串以1111开头,接着是12或21,然后是22,紧跟着一个T或F,最后是四位数字。


Matcher matcher = pattern.matcher(formName);: 使用pattern对象创建一个Matcher实例,它将尝试将platformName与正则表达式进行匹配。


if (matcher.matches()){ return false; }: 如果platformName完全匹配正则表达式,则返回false。这表明formName不符合期望的格式。


String a=matcher.group(1);: 如果matches()返回false,说明formName不完全匹配正则表达式。此时,尝试获取第一个捕获组的内容。由于(12|21)是正则表达式中的第一个捕获组,group(1)将返回"12"或"21",取决于formName中的这部分内容。
switch (a){...}: 使用switch语句根据a的值(即捕获组的内容)执行不同的逻辑:
case "12": return true;: 如果a等于"12",返回true。
case "21": return false;: 如果a等于"21",返回false。
default: throw new RuntimeException("参数错误");: 如果a既不是"12"也不是"21"(这不应该发生,因为group(1)应该只返回这两个值之一,除非正则表达式匹配失败),抛出一个运行时异常,表示参数错误。


整体来看,这段代码检查formName是否符合特定格式,如果符合则返回false;否则,根据捕获到的"12"或"21"来决定返回true还是false。如果捕获到的内容既不是"12"也不是"21",则抛出异常,表示输入无效。

java"> Pattern pattern = Pattern.compile("^1111(12|21)22[TF][0-9]{4}$");Matcher matcher = pattern.matcher(formName);if(matcher.matches()){return false;}String a=matcher.group(1);switch (a){case"12":return true;case "21":return false;default:throw  new RuntimeException("参数错误");}

group(0)将返回整个匹配的字符串,包括1111、12或21、22、T/F以及四位数字。

group(1)将仅返回"12"或"21",


http://www.ppmy.cn/news/1459469.html

相关文章

Unity 性能优化之UI和模型优化(九)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、选择UI二、UGUI的优化1.Raycast Target2.UI控件的重叠3.TextMeshPro 二、模型优化1.Model选项卡Mesh CompressionRead/Write Enabled设置Optimize Ga…

从零开始学习MySQL 事务处理

事务处理与ACID特性 事务是数据库操作的基本单元,它确保一组操作要么全部成功,要么全部失败,以此来维护数据库的一致性。这四个字母缩写ACID代表了事务的四大特性: 原子性(Atomicity)**:事务被…

NLP经典入门论文

1.基础部分 Word2Vec Efficient Estimation of Word Representations in Vector Space https://arxiv.org/abs/1301.3781v3 Transformer attention is all you need https://arxiv.org/abs/1706.03762 BERT Pre-training of Deep Bidirectional Transformers for Langua…

c#---多态

在 C#语言中体现多态有三种方式:虚方法,抽象类, 接口 一、虚方法 什么是虚方法? 在父类中使用 virtual 关键字修饰的方法, 就是虚方法。在子类中可以使用 override 关键字对该虚方法进行重写。 class Animal {public…

Ubuntu24.04安装中文输入法

Ubuntu24.04安装中文输入法 为了更好的体验,请访问个人博客 www.huerpu.cc:7000 一、添加中文语言支持 在安装中文输入法之前,首选要添加中文语言支持。选择System,点击Region & Language。 点击Manage Install Languages。 点击Insta…

uniapp日期区间选择器

uniapp日期区间选择器 在 uniapp 中创建一个简单的自定义日期范围的日期区间选择器: - 限制有效日期范围开始日期为 2024-01-01,结束日期为当日; - 默认日期区间为当日向前计算的7日区间; - 选择开始时间后,判断不可大…

(三)Appdesigner-界面转换及数据导入和保存

提示:文章为系列文章,可以在对应学习专栏里面进行学习。对应资源已上传 目录 前言 一、Appdesigner是什么? 二、界面切换 三、数据导入及保存 (一)数据导入 (二)数据保存 总结 前言 Appd…

FPGA火在哪里?(从商业和专业角度分析)

#前言: 通信领域可分细支众多,在通信过程中总会用到各种各样的协议,而根据通信的对象不同,协议不同,实现方法不同。但大致可分为两类硬件通信和软件通信。从事务逻辑发展角度来说,通信是结果,不…