正则Pattern Matcher compile matcher find group(.*?)
public static void main(String[] args) {
String str = "http://funds.hexun.com/2015-05-28/176237903.html";
Pattern pattern = Pattern.compile("http:\\/\\/(.*?)\\.hexun\\.com(.*?)\\.html");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
System.out.println("Group0=:" + matcher.group(0));// 得到第0组——整个匹配
System.out.println("Group1=:" + matcher.group(1));// 得到第一组匹配——与(or)匹配的
System.out.println("Group2=:" + matcher.group(2));// 得到第二组匹配——与(ld!)匹配的,组也就是子表达式
System.out.println("Start0=:" + matcher.start(0) + " End0:="
+ matcher.end(0));// 总匹配的索引
System.out.println("Start1=:" + matcher.start(1) + " End1:="
+ matcher.end(1));// 第一组匹配的索引
System.out.println("Start2=:" + matcher.start(2) + " End2=:"
+ matcher.end(2));// 第二组匹配的索引
System.out.println(str.substring(matcher.start(0), matcher.end(1)));// 从总匹配开始索引到第1组匹配的结束索引之间子串——Wor
}
}
本文深入探讨了使用Java中的正则表达式进行字符串匹配与分组的技术,详细介绍了如何通过Pattern和Matcher类实现复杂模式的匹配,并展示了如何获取不同层次的匹配结果及其索引位置。
1017

被折叠的 条评论
为什么被折叠?



