Java工程师必知词汇:正则表达式

简介: 正则表达式(Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

|名词定义|

正则表达式(Regular Expression,常简写为regex、regexp或RE),又称正则表示式、正则表示法、规则表达式、常规表示法,是计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

正则表达式最早是从Perl语言中发展而来的,而后在JDK 1.4以前需要使用到正则表达式的相关定义则需要单独引入其他的*.jar文件,但是从JDK1.4后,正则已经默认被JDK所支持,并提供有java.util.regex开发包,同时针对于String 类也增加了对于正则的验证方法。

|常用正则标记Pattern类|

从JDK1.4开始提供java.util.regex开发包,这个包中提供有一个Pattern类,在这个类中定义有所有支持的正则标记。
1、 【数量:单个】字符匹配

  • 任意字符:表示由任意字符组成;
  • \\:匹配 “\”;
  • \n:匹配换行;
  • \t:匹配制表符;

2、【数量:单个】字符集(可以从里面任选一个字符)

  • [abc]:表示可能是字母a、b、c中的任意一个;
  • [^abc]:表示不是由字母a、b、c中的任意一个;
  • [a-zA-Z]:表示由一个任意的字母所组成,不区分大小写;
  • [0-9]:表示由一位数字所组成;

3、【数量:单个】简化字符集

  • .:表示任意的一个字符;
  • \d:等价于“[0-9]”范围;
  • \D:等价于“[^0-9]”范围;
  • \s:匹配任意一位空格,可能是空格、换行、制表符;
  • \S:匹配任意的非空格数据;
  • \w:匹配字母、数字、下划线,等价于“[a-zA-Z_0-9]”;
  • \W:匹配非字母、数字、下划线,等价于“[^a-zA-Z_0-9]”;

4、边界匹配:

  • ^:匹配边界开始;
  • $:匹配边界结束;

5、数量表达,默认情况下只有添加上了数量单位才可以匹配多位字符;

  • 表达式?:该正则可以出现0次或1次;
  • 表达式*:该正则可以出现0次、1次或多次;
  • 表达式+:该正则可以出现1次或多次;
  • 表达式{n}:表达式的长度正好为n次;
  • 表达式{n,}:表达式的长度为n次以上;
  • 表达式{n,m}:表达式的长度在n~m次;

6、逻辑表达式:可以连接多个正则:

  • 表达式X表达式Y:X表达式之后紧跟上Y表达式;
  • 表达式X|表达式Y:有一个表达式满足即可;
  • (表达式):为表达式设置一个整体描述,可以为整体描述设置数量单位;

|String类对正则的支持|

在String中提供有如下与正则有关的操作方法:
1.将指定字符串进行正则判断:public boolean matches(String regex);
2.替换全部:public String replaceAll(String regex, String replacement);
3.替换首个:public String replaceFirst(String regex, String replacement);
4.正则拆分:public String[] split(String regex);
5.正则指定个数拆分:public String[] split(String regex, int limit);

使用正则的最大特点在于方便进行验证处理,以及方便进行复杂字符串的修改处理。

|参考资料|

[1] 阿里云大学Java视频课程
[2] Java开发者
[3] 维基百科

相关文章
|
30天前
|
监控 Java Python
Java 中的正则表达式
正则表达式是Java中强大的文本处理工具,支持灵活的匹配、搜索、替换和验证功能。本文介绍了正则表达式的语法基础及其在Java中的应用,包括字符串匹配、替换、分割及实际场景中的邮箱验证和电话号码提取等示例。通过这些技术,可以显著提高文本处理的效率和准确性。
109 8
|
4月前
|
架构师 前端开发 Java
Java开发工程师的职业规划应该是什么样的?
Java开发工程师的职业规划涵盖多个阶段,包括初入行业(0-1年)、技能提升(1-3年)、技术专家(3-5年)及管理或专家路线选择(5年以上)。各阶段设定了明确的技能要求与职业目标,从掌握Java基础、常用框架到深入研究高级技术、微服务架构乃至担任管理职务或成为技术专家。通过持续学习与实践,结合个人兴趣,Java工程师可在技术或管理领域找到合适的发展方向,最终实现职业成功。
547 83
|
3月前
|
移动开发 Java Windows
Java 匹配\r 和 \n 的正则表达式如何编写
【10月更文挑战第19天】Java 匹配\r 和 \n 的正则表达式如何编写
198 3
|
3月前
|
Java 程序员
在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。
【10月更文挑战第13天】在Java编程中,关键字不仅是简单的词汇,更是赋予代码强大功能的“魔法咒语”。本文介绍了Java关键字的基本概念及其重要性,并通过定义类和对象、控制流程、访问修饰符等示例,展示了关键字的实际应用。掌握这些关键字,是成为优秀Java程序员的基础。
36 3
|
3月前
|
Java 程序员 编译器
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。
在Java编程中,保留字(如class、int、for等)是具有特定语法意义的预定义词汇,被语言本身占用,不能用作变量名、方法名或类名。本文通过示例详细解析了保留字的定义、作用及与自定义标识符的区别,帮助开发者避免因误用保留字而导致的编译错误,确保代码的正确性和可读性。
66 3
|
3月前
|
Java 程序员 编译器
|
4月前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
80 18
|
4月前
|
人工智能 前端开发 Java
Java开发工程师转哪个行业比较好?
Java开发工程师转哪个行业比较好?
343 2
|
5月前
|
人工智能 自然语言处理 Java
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧
文章介绍了Spring AI,这是Spring团队开发的新组件,旨在为Java开发者提供易于集成的人工智能API,包括机器学习、自然语言处理和图像识别等功能,并通过实际代码示例展示了如何快速集成和使用这些AI技术。
Spring AI,Spring团队开发的新组件,Java工程师快来一起体验吧