Java 中的字符串匹配正则表达式

Rupam Yadav 2023年1月30日 2022年4月27日
  1. 在 Java 中使用 matches() 方法匹配字符串
  2. 在 Java 中使用 regionMatches() 方法匹配字符串
Java 中的字符串匹配正则表达式

String 类是 Java 中最常用的类之一。它提供了许多方法来执行各种操作,在本文中,我们将讨论 String 类的 matches()regionMatches() 方法。

在 Java 中使用 matches() 方法匹配字符串

matches() 方法将字符串与函数中传递的值匹配。作为参数传入函数的值应该是正则表达式。

Pattern.matches() 函数返回与 String.matches() 相同的结果。

在下面的示例中,我们创建了三个 String 变量,并使用 regex(正则表达式的缩写)来确定 String 中的所有字符是否都是小写且从 a 到 z 的有效字母。

第一个 print 语句调用 matches() 方法并传递 [a-z]+,如果字符是小写字母,则匹配的正则表达式。第一条语句输出 true,因为字符串 exampleStr1 包含与正则表达式匹配的字符。

第二条语句使用相同的正则表达式检查 exampleStr2 并返回 false,因为字符串的第一个字符是大写的。

最后的 print 语句还返回 false,检查 exampleStr3 是否存在非字母字符。

public class ExampleClass1 {
    public static void main(String[] args) {

        String exampleStr1 = "guardian";
        String exampleStr2 = "Guardian";
        String exampleStr3 = "[abc]";

        System.out.println("First String: " + exampleStr1.matches("[a-z]+"));
        System.out.println("Second String: " + exampleStr2.matches("[a-z]+"));
        System.out.println("Third String: " + exampleStr3.matches("[a-z]+"));

    }
}

输出:

First String: true
Second String: false
Third String: false

在 Java 中使用 regionMatches() 方法匹配字符串

另一种使用正则表达式匹配字符串的方法是 regionMatches(),它匹配两个字符串的区域。该示例有两个字符串,第一个是五个单词的语句,第二个字符串是一个单词。

使用 regionMatches() 方法,我们匹配单词 production 是否包含子字符串 duct。我们在 regionMatches() 函数中传递四个参数来执行此操作。

第一个参数是单词的起始位置,从哪里开始扫描;在我们的例子中,我们的单词在第 19 位,所以我们将它设置为起始位置。

第二个参数是我们想要匹配的 exampleStr2 输入字符串。

我们将 exampleStr2 的起始位置作为第三个参数传递,最后一个参数指定要匹配的字符数。

public class ExampleClass1 {
    public static void main(String[] args) {

        String exampleStr1 = "this site is in production";
        String exampleStr2 = "duct";

        System.out.println(exampleStr1.regionMatches(19, exampleStr2, 0, 4));

    }
}

输出:

true

上面的代码仅在匹配的字符串大小写相同时才匹配子字符串。我们在 regionMatches() 中传递了另一个参数,它忽略了字符的大小写。

public class ExampleClass1 {
    public static void main(String[] args) {

        String exampleStr1 = "this site is in production";
        String exampleStr2 = "DUCT";

        System.out.println(exampleStr1.regionMatches(true, 19, exampleStr2, 0, 4));

    }
}

输出:

true
Author: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

相关文章 - Java Regex