优选主流主机商
任何主机均需规范使用

java matcher获取匹配到的子串的位置

在Java中,可以使用Matcher类的start()和end()方法来获取匹配到的子串的位置。

首先,需要创建一个Pattern对象,并使用该Pattern对象创建一个Matcher对象。然后,可以使用Matcher对象的find()方法进行匹配,如果匹配成功,就可以使用start()和end()方法获取匹配到的子串的起始位置和结束位置。

下面是一个示例代码:

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

public class MatcherExample {
    public static void main(String[] args) {
        String input = "Hello Java! Java is a programming language.";
        String regex = "Java";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(input);

        while (matcher.find()) {
            int start = matcher.start();
            int end = matcher.end();

            System.out.println("匹配到的子串位置:[" + start + ", " + end + ")");
        }
    }
}

输出结果如下:

匹配到的子串位置:[6, 10)
匹配到的子串位置:[18, 22)

上述代码中,我们通过定义一个正则表达式”Java”来匹配字符串”Hello Java! Java is a programming language.”。使用while循环和find()方法,在每次匹配成功后,通过start()方法获取匹配子串的起始位置,通过end()方法获取匹配子串的结束位置,最终输出了两个匹配到的子串的位置范围。

注意,start()方法返回的是匹配子串的起始位置(包含),而end()方法返回的是匹配子串的结束位置(不包含)。

未经允许不得转载:搬瓦工中文网 » java matcher获取匹配到的子串的位置