欢迎访问宙启技术站
智能推送

使用Java正则表达式的10个关键函数

发布时间:2023-06-14 18:59:25

Java正则表达式(Regex)是处理字符串的强大工具。Java中的Regex包含了很多关键函数,可以轻松地进行字符串匹配、替换、分割等操作。本文将介绍Java正则表达式的10个关键函数,帮助程序员快速地掌握Regex的基本用法。

1. Pattern.compile()

Pattern.compile()函数用于编译一个正则表达式,并返回一个Pattern对象。这个Pattern对象可以被用来匹配任意数量的输入字符串。匹配方法会尝试对整个输入字符串和正则表达式进行匹配。如果匹配成功则返回true,如果匹配不成功则返回false。

例如,以下代码编译一个正则表达式,用于匹配一个以小写字母开头的字符串。然后使用这个Pattern对象尝试对字符串进行匹配。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("^[a-z]");
        Matcher matcher = pattern.matcher("hello");
        boolean found = matcher.find();
        System.out.println(found); // Output: true
    }
}

2. Matcher

Matcher用于以应用程序编程方式操作正则表达式。它提供了匹配字符串操作的所有方法。Matcher可以被创建一个模式后,使用macher()函数来创建它。Matcher可以用于查找、替换、分割等操作。

例如,以下代码创建一个Matcher对象并使用它来匹配一个字符串。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        Pattern pattern = Pattern.compile("^[a-z]");
        Matcher matcher = pattern.matcher("hello");
        boolean found = matcher.matches();
        System.out.println(found); // Output: true
    }
}

3. Matcher.find()

Matcher.find()函数用于在输入字符串中查找匹配正则表达式的子串。如果找到匹配,则返回true。如果没有找到匹配,则返回false。

例如,以下代码查找一个字符串中是否包含匹配正则表达式的子串。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String regex = "quick";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            System.out.println("Match found starting at index " + matcher.start() + " and ending at index " + matcher.end());
        }
    }
}

Output:

Match found starting at index 4 and ending at index 9

4. Matcher.group()

Matcher.group()函数用于返回当前匹配的子字符串。该函数返回从输入字符串中指定范围的子字符串,该范围由start()和end()函数返回。

例如,以下代码查找一个字符串中是否包含匹配正则表达式的子串,并返回匹配子串。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String regex = "quick";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            String match = matcher.group();
            System.out.println("Match found: " + match);
        }
    }
}

Output:

Match found: quick

5. Matcher.replaceAll()

Matcher.replaceAll()函数用于将匹配正则表达式的子串替换为指定的字符串。

例如,以下代码将一个字符串中的所有逗号替换为短横线。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "This, is, a, test";
        String regex = ",";
        String replacement = "-";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        String output = matcher.replaceAll(replacement);
        System.out.println(output); // Output: This- is- a- test
    }
}

6. Matcher.start()和Matcher.end()

Matcher.start()和Matcher.end()函数用于返回匹配子串在输入字符串中的开始和结束位置。

例如,以下代码查找一个字符串中是否包含匹配正则表达式的子串,并返回匹配子串的开始和结束位置。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String regex = "quick";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        while (matcher.find()) {
            int start = matcher.start();
            int end = matcher.end();
            System.out.println("Match found starting at index " + start + " and ending at index " + end);
        }
    }
}

Output:

Match found starting at index 4 and ending at index 9

7. Matcher.lookingAt()

Matcher.lookingAt()函数用于检查输入字符串中是否以匹配正则表达式的子串开始。

例如,以下代码检查一个字符串是否以匹配正则表达式的子串开始。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String regex = "The";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        boolean found = matcher.lookingAt();
        System.out.println(found); // Output: true
    }
}

8. Matcher.matches()

Matcher.matches()函数用于检查输入字符串是否完全匹配正则表达式。如果完全匹配,则返回true。

例如,以下代码检查一个字符串完全匹配正则表达式。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String regex = "The quick brown fox jumps over the lazy dog";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);
        boolean found = matcher.matches();
        System.out.println(found); // Output: true
    }
}

9. String.matches()

String.matches()函数用于检查输入字符串是否匹配正则表达式。如果匹配,则返回true。

例如,以下代码检查一个字符串是否匹配正则表达式。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String regex = "The quick brown fox jumps over the lazy dog";
        boolean found = input.matches(regex);
        System.out.println(found); // Output: true
    }
}

10. String.split()

String.split()函数用于将一个字符串按照匹配正则表达式的子串进行分割。分割后,返回一个字符串数组。

例如,以下代码将一个字符串按照空格进行分割。

import java.util.regex.*;

public class RegexExample {

    public static void main(String[] args) {
        String input = "The quick brown fox jumps over the lazy dog";
        String[] output = input.split(" ");
        for (String str: output) {
            System.out.println(str);
        }
    }
}

Output:

The

quick

brown

fox

jumps

over

the

lazy

dog

总结:

Java中的Regex包含了很多关键函数,可以轻松地进行字符串匹配、替换、分割等操作。以上介绍的10个关键函数是Regex在Java中最常用的函数。熟练掌握这些函数对于程序员来说非常重要。