Java正则表达式学习教程

Java正则表达式学习教程

什么是正则表达式?

正则表达式(Regular Expression),通常简写为“regex”或“regexp”,是一种由字符和特殊符号组成的字符串模式,用于匹配和操作文本。可以用于搜索、替换和筛选文本数据,常用于文本处理、数据抽取、文本匹配及文本分割等场景。

Java中的正则表达式

Java中的正则表达式通常使用java.util.regex包中的类进行操作。常用的类包括:

  • Pattern(模式):表示正则表达式的编译后的对象,用于执行正则表达式操作。
  • Matcher(匹配器):用于对输入字符串及其子字符串应用正则表达式并作出匹配结果的引擎。
  • PatternSyntaxException(模式语法异常):在正则表达式模式中发现语法错误时抛出。

基本正则表达式语法

字符匹配

  • 字面值字符:匹配指定的字符,例如hello可以匹配hello
  • 字符组:匹配指定范围内的任意一个字符,例如[abc]可以匹配abc
  • 反义字符组:匹配不在指定范围内的任意一个字符,例如[^abc]可以匹配除abc之外的任意一个字符。
  • 字符范围:匹配指定范围内的任意一个字符,例如[a-z]可以匹配任意一个小写字母。
  • 转义字符:用于匹配一些特殊字符,例如\w可匹配任意一个字母、数字或下划线。

量词

  • n+:匹配至少出现n次以上的字符或字符组,例如a+可以匹配1个或多个a。
  • n*:匹配0个或多个出现n的字符或字符组,例如a*可以匹配0个或任意多个a。
  • n?:匹配0个或1个出现n的字符或字符组,例如a?可以匹配0个或1个a。
  • n{m,n}:匹配出现m次到n次的字符或字符组,例如a{2,4}可以匹配2个到4个a。

边界匹配

  • ^:匹配输入的开始位置。
  • $:匹配输入的结束位置。
  • \b:匹配一个单词的边界,例如\bthe\b可以匹配“the”,但不匹配“then”、“there”等。

示例说明

示例一

要求:匹配输入字符串中所有的数字。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {
    public static void main(String[] args) {
        // 定义正则表达式
        String regex = "\\d+";
        // 定义输入字符串
        String input = "abc123def4567";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex);
        // 创建Matcher对象并匹配输入字符串
        Matcher matcher = pattern.matcher(input);
        // 遍历所有匹配结果并输出
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

输出结果为:

123
4567

解释:由于正则表达式\d+代表匹配一个或多个数字,因此该程序可以匹配输入字符串中所有的数字。

示例二

要求:匹配输入字符串中所有以“the”开头、以“end”结尾的单词。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {
    public static void main(String[] args) {
        // 定义正则表达式
        String regex = "\\bthe\\w*end\\b";
        // 定义输入字符串
        String input = "thequickendjumpsoverthelazydog";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex);
        // 创建Matcher对象并匹配输入字符串
        Matcher matcher = pattern.matcher(input);
        // 遍历所有匹配结果并输出
        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

输出结果为:

thequickend

解释:由于正则表达式\bthe\w*end\b代表匹配所有以“the”开头、以“end”结尾的单词,因此该程序可以匹配输入字符串中的“thequickend”。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java正则表达式学习教程 - Python技术站

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

相关文章

  • SpringBoot响应处理实现流程详解

    下面我将详细讲解“SpringBoot响应处理实现流程详解”的完整攻略。 前言 Spring Boot 响应处理的实现流程是相对复杂的,但是熟练掌握后对于实现自己的响应处理或者了解框架背后的原理非常有帮助。 Spring Boot响应处理实现流程详解 Spring Boot 的请求响应处理流程大概如下: 用户请求到达 DispatcherServlet 后,…

    Java 2023年5月15日
    00
  • JavaWeb文件上传下载功能示例解析

    JavaWeb文件上传下载功能示例解析 文件上传功能 基本原理 文件上传是将本地文件发送到服务器保存的过程。通过HTTP协议,客户端将文件数据发送到服务器端,服务器接收到数据后将其存储到指定的目录中。 在本例中,我们使用了Apache的文件上传组件commons-fileupload来实现文件上传功能。 实现步骤 引入相关依赖。 xml <depend…

    Java 2023年5月19日
    00
  • Java项目实现定时任务的三种方法

    Java项目实现定时任务的三种方法 在Java项目中,我们经常需要实现一些定时任务,比如定时发送邮件、定时备份数据等。本文将介绍实现定时任务的三种常见方法,分别是使用Java内置的Timer类、使用Spring的@Scheduled注解和使用Quartz框架。 方法一:使用Java内置的Timer类 Java内置的Timer类是一个非常方便的定时任务实现方式…

    Java 2023年5月18日
    00
  • maven打包成第三方jar包且把pom依赖包打入进来的方法

    下面是详细讲解“maven打包成第三方jar包且把pom依赖包打入进来的方法”的完整攻略。 1. maven打包成第三方jar包的基本操作 在maven项目的根目录下执行以下命令: mvn clean package 执行上述命令即可将项目打包成jar包,同时在target目录下生成一个 xxx.jar 文件,这就是我们要的第三方jar包。 2. 把pom依…

    Java 2023年5月19日
    00
  • 学习Java之如何正确地跳出循环结构

    学习Java,循环结构是非常重要的知识点。而在使用循环的过程中,我们有时候需要跳出循环,以停止或跳过一些迭代,这时候就需要使用跳出循环的语句。本文将详细讲解如何正确地跳出循环结构。 标准循环结构 Java 中常见的循环结构包括 for、while 和 do-while 循环结构。它们的语法分别为: for (初始化; 布尔表达式; 更新) { // 代码块 …

    Java 2023年5月26日
    00
  • Java异常继承结构解析_动力节点Java学院整理

    Java异常继承结构解析 异常概述 在Java语言中,异常分为两种:检查异常和非检查异常。 检查异常,也叫已检查异常,是指Java编译器在编译时会检查的异常,而且这种异常要么被捕获,要么被声明抛出。 非检查异常,也叫未检查异常,是指Java编译器不检查的异常。这种异常通常是由程序逻辑而不是语法错误引起的,比如空指针异常、类型转换异常等。 Java中的所有异常…

    Java 2023年5月26日
    00
  • 通过Java实现添加或删除PDF中的附件

    这里介绍通过Java实现添加或删除PDF中的附件的完整攻略: 1. 添加附件 1.1 引入相关库 import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache…

    Java 2023年5月19日
    00
  • PHP实现字节数Byte转换为KB、MB、GB、TB的方法 原创

    PHP实现字节数Byte转换为KB、MB、GB、TB的方法 在开发PHP程序时,我们经常需要对文件大小进行处理,通常情况下我们会使用字节数来表示文件大小,但有时我们需要将字节数转换成更容易理解的单位,比如 KB、MB、GB、TB等。 下面是PHP实现字节数Byte转换为KB、MB、GB、TB的方法: 方法一:自定义函数 function formatSize…

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