一文搞懂Java正则表达式的使用

yizhihongxing

一文搞懂Java正则表达式的使用

什么是正则表达式

正则表达式是一种专门用于匹配字符串的工具,它由一些字符和符号构成,这些字符和符号用于描述字符串中某些部分的模式。Java中的正则表达式使用java.util.regex包进行支持,它提供了许多方法和类用于操作正则表达式。

正则表达式基本语法

字符

在正则表达式中,每个普通字符(除了特殊字符)都表示对应的一个字符。例如,\d表示匹配任意一个数字字符。因为在正则表达式中,某些符号有特殊的含义,如果想要匹配具有正则表达式特殊含义的符号,需要在前面加上反斜杠(\),例如,.表示匹配一个点号字符。下面列举一些常用的字符:
- \d 表示字符是一个数字。等价于[0-9]。
- \w 表示字符是一个单词字符(字母、数字、下划线)。等价于[A-Za-z0-9_]。
- \s 表示字符是一个空白字符(空格、制表符、换行符等)。等价于[\t\n\x0B\f\r]。
- \D 表示字符不是一个数字。等价于[^0-9]。
- \W 表示字符不是一个单词字符。等价于[^A-Za-z0-9_]。
- \S 表示字符不是一个空白字符。等价于[^\t\n\x0B\f\r]。

选择符

在正则表达式中,|表示或,用于把多个匹配项连接起来。例如,\b(cat|dog)\b表示匹配cat或者dog单词。

量词

在正则表达式中,量词用来表示某个模式重复出现的次数。例如,a{2,4}表示匹配连续出现2~4个a字符。下面列举一些常用的量词:
- ? 表示模式出现0次或1次
- + 表示模式出现1次或多次
- * 表示模式出现0次、1次或多次
- {n} 表示模式出现n次
- {n,} 表示模式出现n次或更多次
- {n,m} 表示模式出现n到m次

定位符

在正则表达式中,定位符用来指定匹配在字符串中的位置。例如,^表示匹配字符串的开头,$表示匹配字符串的结尾。

Java正则表达式实例

例1:验证手机号码

public boolean isMobileNO(String mobileNum){
    String MOBILE_NUM_PATTERN = "^1[3|4|5|6|7|8|9][0-9]{9}$";
    Pattern pattern = Pattern.compile(MOBILE_NUM_PATTERN);
    Matcher matcher = pattern.matcher(mobileNum);
    return matcher.matches();
}

上述实例使用了正则表达式来验证手机号码。正则表达式" ^1[3|4|5|6|7|8|9][0-9]{9}$ "表示:

  • ^表示匹配字符串的开头
  • 1表示匹配数字1
  • [3|4|5|6|7|8]表示匹配3、4、5、6、7、8中任意一个数字
  • [0-9]{9}表示匹配9个数字
  • $表示匹配字符串的结尾

例2:替换关键字

public String replaceKeyWords(String originalStr){
    String KEY_WORDS_PATTERN = "Java|Python";
    Pattern pattern = Pattern.compile(KEY_WORDS_PATTERN);
    Matcher matcher = pattern.matcher(originalStr);
    String result = matcher.replaceAll("Java & Python");
    return result;
}

上述实例使用了正则表达式来替换关键字。正则表达式"Java|Python"表示匹配Java或Python。matcher.replaceAll()方法将匹配到的字符串替换成"Java & Python"。

总结

本文简要介绍了Java正则表达式的基本语法以及两个使用实例。只要掌握了正则表达式基本语法和使用方法,就可以快速编写出常用的正则表达式。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文搞懂Java正则表达式的使用 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • eclipse/intellij idea 远程调试hadoop 2.6.0

    下面是关于“eclipse/intellij idea 远程调试hadoop 2.6.0”的完整攻略: 简介 在分布式系统开发过程中,我们可能需要对运行在远端的Hadoop集群上的代码进行调试。这时,我们就需要进行远程调试。本文将介绍如何使用Eclipse/IntelliJ IDEA进行远程调试Hadoop 2.6.0,以及具体的步骤和示例。 调试前准备 配…

    Java 2023年5月20日
    00
  • maven install报错中程序包xxx不存在的问题解决

    这里是“maven install报错中程序包xxx不存在的问题解决”的完整攻略。 问题描述 在使用Maven构建项目时,有时候会遇到类似如下错误信息: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-co…

    Java 2023年5月19日
    00
  • java编程是做什么的

    为了回答这个问题,首先需要明确“Java编程”这个概念其实是比较广泛的,因为Java语言可以用于多种应用场景。但是我们可以从以下几个方面来讲解Java编程的用途: 开发桌面应用程序Java语言最初的设计目的是用于开发桌面应用程序。通过Java编程,可以使用Java Swing和Java FX等UI框架,来构建各种类型的桌面应用程序。例如,可以开发图像编辑器、…

    Java 2023年5月23日
    00
  • Sprint Boot @ControllerAdvice使用方法详解

    Spring Boot的@ControllerAdvice的作用与使用方法 在Spring Boot中,@ControllerAdvice注解用于定义全局异常处理器。通过使用@ControllerAdvice注解,可以方便地处理应用程序中的异常,并提供自定义的异常处理逻辑。在本文中,我们将详细介绍@ControllerAdvice注解的作用和使用方法,并提供…

    Java 2023年5月5日
    00
  • js中几种去掉字串左右空格的方法

    当我们操作字符串时,常常需要将字符串的左右两端空格去掉。在 JavaScript 中,去掉字符串左右空格的方法有多种。下面是几种去掉字符串左右空格的方法的详细攻略: 使用trim()方法 使用 trim() 方法,可以去掉字符串两端的空格,同时该方法还可以去掉字符串两端的所有空白字符(包括空格、制表符、换行符等)。 let str = ‘ hello wor…

    Java 2023年6月15日
    00
  • JAVA 时间区间的字符串合法性验证

    下面是“JAVA 时间区间的字符串合法性验证”的完整攻略: 背景 在Java中,时间区间通常由一个开始时间和一个结束时间组成,比如“2019-01-01 00:00:00”到“2019-01-01 23:59:59”这样的字符串格式。在实际开发中,我们需要对时间区间的字符串格式进行合法性验证,保证输入数据的有效性。本文将介绍一种简单有效的JAVA时间区间字符…

    Java 2023年5月20日
    00
  • SpringBoot集成内存数据库Derby的实践

    请看以下攻略: SpringBoot集成内存数据库Derby实践 Apache Derby是基于Java的内存关系型数据库。这篇文章将介绍如何在Spring Boot应用程序中使用Derby,实现内存数据库的集成,以及用于创建表、插入数据以及检索和删除数据的几个简单示例。 集成Derby 要集成Derby,需要添加以下依赖项到pom.xml中: <de…

    Java 2023年5月20日
    00
  • Java StackOverflowError详解

    Java StackOverflowError详解 什么是StackOverflowError? StackOverflowError是在Java虚拟机内存不足时抛出的错误之一,通常是由于方法调用栈溢出而引起的。当我们递归调用一个方法时,每次调用都会将方法运行时需要的一些数据压入调用栈中,包括方法参数、局部变量以及返回地址等,当调用栈已经满了而仍需要入栈时就…

    Java 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部