在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()方法返回的是匹配子串的结束位置(不包含)。