加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式知识详解之回溯引用 (java版示例)

发布时间:2020-12-14 04:25:59 所属栏目:百科 来源:网络整理
导读:正则表达式知识详解系列,通过代码示例来说明正则表达式知识 源代码下载地址: http://download.csdn.net/detail/gnail_oug/9504094 示例功能: 1、查询一个字符串的重复字或字母 2、提取html页面里的标题 /** * 回溯引用,前后一致匹配 * @date 2016-04-20

正则表达式知识详解系列,通过代码示例来说明正则表达式知识

源代码下载地址:http://download.csdn.net/detail/gnail_oug/9504094



示例功能:

1、查询一个字符串的重复字或字母

2、提取html页面里的标题

	/**
	 * 回溯引用,前后一致匹配
	 * @date 2016-04-20 16:48:07
	 * @author sgl
	 */
	public static void backreference(){
		String str="上上海市市市";
		
		System.out.println("===========找出重复字===========");
		Pattern p=Pattern.compile("(.)1+");
		Matcher m=p.matcher(str);
		while(m.find()){
			System.out.println(m.group()+"   位置:["+m.start()+","+m.end()+"]");
		}
		
		System.out.println("===========找出重复字母===========");
		str="aafdfdttffjjj";
		p=Pattern.compile("([a-z]+)1+");
		m=p.matcher(str);
		while(m.find()){
			System.out.println(m.group()+"   位置:["+m.start()+","+m.end()+"]");
		}
		
		//匹配html里的标题
		str="<h1>标题1</h1><h2>标题2</h2><h3>标题3</h3><h4>标题4</h5>";
		
		System.out.println("===========匹配标题(非回溯方法)===========");
		//<h4>标题4</h5>这个不符合的标题也会被匹配
		p=Pattern.compile("<h[1-6]>.*?</h[1-6]>");
		m=p.matcher(str);
		while(m.find()){
			System.out.println(m.group()+"   位置:["+m.start()+","+m.end()+"]");
		}
		
		System.out.println("===========匹配标题(回溯方法)===========");
		//<h4>标题4</h5>这个不符合的标题不会被匹配
		// 1表示前面第一个子表达式,2表示前面第2个子表达式,依此类推
		p=Pattern.compile("<h([1-6])>.*?</h1>");
		m=p.matcher(str);
		while(m.find()){
			System.out.println(m.group()+"   位置:["+m.start()+","+m.end()+"]");
		}
		
		
	}

运行结果:

===========找出重复字===========
上上   位置:[0,2]
市市市   位置:[3,6]
===========找出重复字母===========
aa   位置:[0,2]
fdfd   位置:[2,6]
tt   位置:[6,8]
ff   位置:[8,10]
jjj   位置:[10,13]
===========匹配标题(非回溯方法)===========
<h1>标题1</h1>   位置:[0,12]
<h2>标题2</h2>   位置:[12,24]
<h3>标题3</h3>   位置:[24,36]
<h4>标题4</h5>   位置:[36,48]
===========匹配标题(回溯方法)===========
<h1>标题1</h1>   位置:[0,36]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读