Java正则表达式示例-阿里云开发者社区

开发者社区> 开发与运维> 正文

Java正则表达式示例

简介: Java关于正则表达式的API有一些概念不是很清楚,最近需要用到,特别研究了一下,转载一篇文章以释疑 Java中关于正则表达式的函数接口有,group(),start(),end(),何为group,一组这里指的应为一个正则表达式中的一个子表达式。

Java关于正则表达式的API有一些概念不是很清楚,最近需要用到,特别研究了一下,转载一篇文章以释疑

Java中关于正则表达式的函数接口有,group(),start(),end(),何为group,一组这里指的应为一个正则表达式中的一个子表达式。

示例

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

public class RegexDemo {
	
	public static void main(String[] args) {
		
		// TODO Auto-generated method stub
		String str = "Hello,World! in Java.";
		Pattern pattern = Pattern.compile("W(or)(ld!)");
		Matcher matcher = pattern.matcher(str);
		while (matcher.find()) {
			System.out.println("Group 0:" + matcher.group(0));// 得到第0组——整个匹配
			System.out.println("Group 1:" + matcher.group(1));// 得到第一组匹配——与(or)匹配的
			System.out.println("Group 2:" + matcher.group(2));// 得到第二组匹配——与(ld!)匹配的,组也就是子表达式
			System.out.println("Start 0:" + matcher.start(0) + " End 0:" + matcher.end(0));// 总匹配的索引
			System.out.println("Start 1:" + matcher.start(1) + " End 1:" + matcher.end(1));// 第一组匹配的索引
			System.out.println("Start 2:" + matcher.start(2) + " End 2:" + matcher.end(2));// 第二组匹配的索引
			System.out.println(str.substring(matcher.start(0), matcher.end(1)));// 从总匹配开始索引到第1组匹配的结束索引之间子串——Wor
		}
	}
}
输出结果为
Group 0:World!
Group 1:or
Group 2:ld!
Start 0:6 End 0:12
Start 1:7 End 1:9
Start 2:9 End 2:12
Wor

注意,在Java正则表达式API中组的概念,函数start(int i),end(int i),参数i的含义即为子表达式的索引,而start,end则分别对应匹配项在字符串中索引的起始值与结束值。


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章