Java 正则表达式学习总结和一些小例子

yizhihongxing

Java 正则表达式学习总结和一些小例子

正则表达式是用于字符串匹配和替换的一种表达式语言。Java 中使用 java.util.regex 包来实现正则表达式。这篇文章将会总结 Java 正则表达式的常见语法和使用方法,并且提供一些示例代码来说明这些概念。

Java 正则表达式语法

Java 正则表达式的语法相对复杂,但它也为我们提供了强大的功能和灵活性。下面是一些 Java 正则表达式语法的基本知识:

字符类

字符类是正则表达式语法中用于匹配单个字符的元素。它们使用一对方括号 [ ] 来表示,里面包含了可以被匹配的字符。例如,正则表达式 [abc] 会匹配单个字符 abc。也可以使用范围来匹配一段字符,例如 [a-c] 会匹配字符 ac

量词

量词是正则表达式语法中用于限定匹配字符数量的元素。它们可以被用于单个字符、字符类或分组中。下面是一些常用的量词:

  • * - 匹配0个或多个字符。
  • + - 匹配1个或多个字符。
  • ? - 匹配0个或1个字符。
  • {n} - 匹配恰好 n 个字符。
  • {n,} - 匹配至少 n 个字符。
  • {n,m} - 匹配至少 n 个字符但不超过 m 个字符。

分组

分组是正则表达式语法中用于将一系列字符组合在一起的元素,以便对它们进行量词操作或进行后续的分组操作。它们使用一对圆括号 ( ) 来表示,里面包含了需要分组的字符。例如,正则表达式 (ab)+ 会匹配一个或多个连续的 ab

边界

边界是正则表达式语法中用于匹配文本字符的位置而不是字符本身的元素。它们可以被用于匹配诸如开始和结束符号之类的特殊字符。下面是一些常用的边界:

  • ^ - 匹配一行的开始。
  • $ - 匹配一行的结束。
  • \b - 匹配词的开头或结尾。
  • \B - 匹配不在词的开头或结尾的位置。

Java 正则表达式的使用方法

为了使用正则表达式,我们需要先构造一个模式(pattern)对象,然后使用它来创建一个匹配器(matcher)对象。这个匹配器可以被用于在字符串中查找或替换符合模式的子串。

下面是一个例子:

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

public class RegexExample {
    public static void main(String[] args) {
        String text = "Java is a popular programming language.";
        Pattern pattern = Pattern.compile("Java");

        Matcher matcher = pattern.matcher(text);
        int count = 0;
        while(matcher.find()) {
            count++;
        }
        System.out.println("Count of 'Java' in text: " + count);
    }
}

在这个例子中,我们首先定义了一个字符串和一个正则表达式模式。然后我们构造了一个 Pattern 对象并使用该对象来创建一个 Matcher 对象。接下来我们使用 while 循环来在字符串中查找所有符合模式的子串,并在每次匹配时,增加计数器的计数。最后,我们输出了匹配到的次数。

输出结果:Count of 'Java' in text: 1

Java 正则表达式的小例子

我们可以看到,正则表达式在 Java 编程中是一个非常有用的工具。下面是两个小例子来说明正则表达式的应用:

邮箱地址验证

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

public class EmailExample {
    public static void main(String[] args) {
        String email = "example@example.com";
        String regex = "^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$";
        Pattern pattern = Pattern.compile(regex);

        Matcher matcher = pattern.matcher(email);
        if(matcher.matches()) {
            System.out.println("Valid email address.");
        } else {
            System.out.println("Invalid email address.");
        }
    }
}

在这个例子中,我们定义了一个要验证的电子邮件地址和一个有效的电子邮件地址的正则表达式模式。然后我们使用 Pattern 和 Matcher 对象来匹配电子邮件地址。如果地址符合模式,我们输出“Valid email address.”,否则,我们输出“Invalid email address.”。

替换子串

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

public class ReplaceExample {
    public static void main(String[] args) {
        String text = "I have a cat, but I like dogs too.";
        String regex = "\\bcat\\b";
        Pattern pattern = Pattern.compile(regex);

        Matcher matcher = pattern.matcher(text);
        String newText = matcher.replaceAll("bird");
        System.out.println(newText);
    }
}

在这个例子中,我们定义了一个字符串,其中包含了一个要被替换的子串。然后我们定义了一个正则表达式模式,它将匹配子串的边界。我们使用 Matcher 和 Pattern 对象来匹配字符串,并使用 replaceAll() 方法将子串替换为“bird”。最后,我们输出了替换后的结果。

输出结果: I have a bird, but I like dogs too.

总结

Java 正则表达式是编程中非常重要的一个概念。本文涵盖了 Java 正则表达式语法的基本知识以及使用方法,同时提供了两个小例子来说明正则表达式在实际编程中的应用。如果你希望深入学习正则表达式的话,可以上网搜索一些相关资料来进行学习。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 正则表达式学习总结和一些小例子 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript获得url查询参数的方法

    当我们需要获取当前页面URL中的查询参数时,可以使用JavaScript代码来完成这一任务。获取URL查询参数的方法主要分为两种,分别是使用正则表达式和URLSearchParams对象。 使用正则表达式获取URL查询参数 使用正则表达式来获取URL查询参数,可以通过对当前URL使用方法location.search来获得查询参数,然后使用正则表达式来解析得…

    JavaScript 2023年6月11日
    00
  • 微信小程序 如何保持登录状态

    关于如何保持微信小程序登录状态,一般有两种方法: 1. 使用微信原生的登录态 我们可以调用登录 API 获取微信官方提供的登录态码(即 login code),然后将该码发送给自己的服务器进行验证和登录。服务器完成登录后,会返回一个 session key,该 key 应该在每次请求需要登录态的接口时携带,并在客户端进行本地存储,以便下次使用。 具体实现流程…

    JavaScript 2023年6月11日
    00
  • javascript 日期时间 转换的方法

    当需要对 JavaScript 中的日期时间格式进行转换时,我们可以使用以下方法: 获取当前时间 使用以下方法可以获取到当前时间: const now = new Date(); 其中,now就是获取到的当前时间,它的格式是日期对象。可以通过该对象的方法来对时间进行处理。 时间戳转化为日期时间格式 时间戳指的是从1970年1月1日00:00:00开始所经过的…

    JavaScript 2023年5月27日
    00
  • JavaScript入门教程(5) js Screen屏幕对象

    JavaScript入门教程(5) js Screen屏幕对象 简介 Screen 对象代表了当前浏览器所在电脑的屏幕信息。通过 Screen 对象,我们可以获取到客户端屏幕的宽、高、物理宽、高、可用宽、高等相关信息,可以方便设计响应式页面。 属性 Screen.width 获取当前屏幕的宽度。 Screen.height 获取当前屏幕的高度。 Screen…

    JavaScript 2023年5月27日
    00
  • js中数组Array的一些常用方法总结

    接下来我将详细讲解“js中数组Array的一些常用方法总结”,内容分为以下部分: 概述 数组的创建和赋值 数组的常用方法 1. 概述 数组是 JavaScript 中最常用的数据类型之一,它可以容纳多个值,并按照一定的顺序进行存储和访问。在 JavaScript 中,数组是动态的,即在创建数组时不需要指定其大小,而可以根据需要动态添加或删除元素。 2. 数组…

    JavaScript 2023年5月27日
    00
  • JavaScript利用canvas实现炫酷的碎片切图效果

    JavaScript利用canvas实现炫酷的碎片切图效果是一种非常流行的前端动画效果。下面是该攻略的详细步骤: 1. 准备工作 首先,需要在HTML文件中引入一个canvas元素,并为其指定宽度和高度。然后,在JavaScript文件中获取canvas元素,以便后续操作。 <canvas id="canvas" width=&qu…

    JavaScript 2023年6月11日
    00
  • javascript实现的多个层切换效果通用函数实例

    接下来我会详细讲解“javascript实现的多个层切换效果通用函数实例”的完整攻略,包括实现思路、代码实现和示例说明。 实现思路 本例中,我们使用 JavaScript 实现多个层(div)之间的切换效果。我们将所有的层使用 CSS 定位,每次切换时修改对应的层的 z-index 属性为最高,其他层的 z-index 属性为较低。同时,也需要使用 Java…

    JavaScript 2023年6月11日
    00
  • JS常用加密编码与算法实例总结

    JS常用加密编码与算法实例总结 本文将从加密编码的概念入手,讲解JS中常用的几种加密编码算法及其实现方法,并且举例说明其应用场景。 一、加密编码概念 1.1 加密 加密是将一段明文(原始数据)通过某种算法,转换成一段看上去似乎很乱的密文(加密数据)。加密的过程中需要使用一种密钥来控制算法的变换,这个密钥可以使加密结果或者加密方式不可预测。 1.2 解密 解密…

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