Java利用正则取标签之间的数据

我就废话不多说了,大家还是直接看代码吧~

String str = "哈哈<font color='red'>1111</font>还是你牛<font color='red'>11111</font> ";
String regStr = "<font color='red'>(.*?)</font>";
Pattern pattern = Pattern.compile(regStr);
if(str != null){
 Matcher m = pattern.matcher(str);
 while(m.find()){
    String group = m.group(1);
 System.out.println(group);
 str = str.replaceAll(regStr, "***");
 }
 System.out.println(str);
}

结果:

1111
11111
哈哈***还是你牛*** 

补充知识:java正则获取字符前后数据

使用Java正则获取指定字符前或者后数据:

代码如下:

<pre name="code" class="java">public class RegTest {

	//字符串截取
	public static String regComp(String item) {
		String num = "";
		// 替换中文
		String reg = "[\\u4e00-\\u9fa5]+";
		//截取λ|入后面数字
		String comp1 = "[\\s\\S]*([λ|入]\\d*)[\\s\\S]*";
		//截取波|第前面数字
		String comp2 = "(\\d+[波|第])";
		if (item.matches(comp1)) {
			num = item.replaceFirst(comp1, "$1").replaceAll(reg, "").replace("λ", "");
		} else {
			Pattern p = Pattern.compile(comp2);
			Matcher m = p.matcher(item);
			if (m.find()) {
				num = m.group(1).replaceAll(reg, "");
			}
		}
		return num;
	}

	/**
	 * @Description: TODO(这里用一句话描述这个类的作用)
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		String str1 = "石家庄(至郑州)架1-2-23-OTU3S-1(OTU3S 1波).OCH)";
		String str3 = " 北京东四1-1-4D-OTU3S-1(OTU3S 100第三个).OCH";
		String str2 = " 北京东四1-1-4D-OTU3S-1(OTU3S 入12).OCH";
		String str4 = " 北京东四1-1-4D-OTU3S-1(OTU3S λ12334).OCH";
		String[] array = { str1, str2, str3,str4 };

		for (int i = 0; i < array.length; i++) {
			//测试
			String num = regComp(array[i]);
			System.out.println(num);
		}
	}
}
 

输出结果:

1
12
100
12334

以上这篇Java利用正则取标签之间的数据就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Java正则表达式提取字符的方法实例

    正好遇到一个需求需要将字符串中特定的字符全部提取出来,这个如果是按常规的字符串处理的话非常的繁琐.于是想到用正则表达式来完成.项目需求是这样的:需要提取车牌号中最后一个数字,比如说:苏A7865提取5,苏A876X提取6 实现方法: import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String s

  • java 字符串截取的三种方法(推荐)

    众所周知,java提供了很多字符串截取的方式.下面就来看看大致有几种. 1.split()+正则表达式来进行截取. 将正则传入split().返回的是一个字符串数组类型.不过通过这种方式截取会有很大的性能损耗,因为分析正则非常耗时. String str = "abc,12,3yy98,0"; String[] strs=str.split(","); for(int i=0,len=strs.length;i<len;i++){ System.out.pri

  • Java利用正则表达式提取数据的方法

    什么是正则表达式 正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配. Java利用正则表达式提取数据 Java正则表达式的用途很广,之前要用到将一大 3M 的 txt 文本切分成多个小文本,用 C# 写的话很简洁,代码也就二十几行,今天用 Java 写了一下,果然,Java 很罗嗦. 切分文件的代码

  • Java实现字符串匹配(基于正则)

    有一个String,如何查询其中是否有y和f字符?最黑暗的办法就是: 程序1:我知道if.for语句和charAt() class Test{ public static void main(String args[]) { String str="For my money, the important thing "+"about the meeting was bridge-building"; char x='y'; char y='f'; boolean r

  • Java利用正则取标签之间的数据

    我就废话不多说了,大家还是直接看代码吧~ String str = "哈哈<font color='red'>1111</font>还是你牛<font color='red'>11111</font> "; String regStr = "<font color='red'>(.*?)</font>"; Pattern pattern = Pattern.compile(regStr); if

  • java利用pdfbox+poi往pdf插入数据

    目录 指定页码插入/替换 思路1(插入): 思路2(替换): 啰嗦几句 总结 指定页码插入/替换 pdfbox好像没有专门提供这个方法,但是现有的方法多重组合起来也能实现这个功能, 需求:一个pdf文件A有10页,现在想在第6页插入一页新的pdf文件B,插入完成后整个pdf文件A变成11页. 思路1(插入): 先将这个10的pdf拆分成10个1页的pdf,按顺序放好,文件名分别是:1.pdf.2.pdf....10.pdf.再拆分到第6页的时候将文件B放进来,重命名问6.pdf,原本pdf文件A

  • Java利用剪贴板实现交换程序间数据的方法

    本文实例讲述了Java利用剪贴板交换程序间数据的实现方法.在图形化系统中,系统剪贴板非常重要,很难想象一个没有剪贴板功能的图形化操作系统使用起来会是怎样.本例就实现了Java 程序与所在系统的剪贴板的数据交流,当单击"Paste"按钮后,Java 程序从系统剪贴板中取得数据并显示在一个JTextArea 组件中:当单击"Copy"按钮后,文本区中的选中文本将被传送到系统剪贴板上. 首先必须得到系统剪贴板的实例引用,java.awt.Toolkit 类中提供了getS

  • java利用注解实现简单的excel数据读取

    实现工具类 利用注解实现简单的excel数据读取,利用注解对类的属性和excel中的表头映射,使用Apache的poi就不用在业务代码中涉及row,rows这些属性了. 定义注解: @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Excel { String name(); } 由于本例中只涉及根据Excel表头部分对Excel进行解析,只定义了一个name作为和Excel表头的隐射

  • Android Activity之间的数据传递方法总结

    前言 在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间数据的传递方法. 1.通过 Intent 传递 我们在进行 Activity 跳转时,是要有 Intent,此时 Intent 是可以携带数据的,我们可以利用它将数据传递给其它Activity.Intent 应该是系统提供的支持类型最广,功能最全面的传递方式了.基本数据类型.复杂数据类型(如数组.集合).自定义数据类型等等都能支持,而且使用起来也不复杂.下面将通过几

  • java使用正则抓取网页邮箱

    使用正则抓捕网上邮箱 这就是我们需要抓捕的网站. 实现思路: 1.使用java.net.URL对象,绑定网络上某一个网页的地址 2.通过java.net.URL对象的openConnection()方法获得一个HttpConnection对象 3.通过HttpConnection对象的getInputStream()方法获得该网络文件的输入流对象InputStream 4.循环读取流中的每一行数据,并由Pattern对象编译的正则表达式区配每一行字符,取得email地址 下面是我们的代码: pa

  • Java 利用DeferredResult实现http轮询实时返回数据接口

    今天这篇文章呢,不难,其实是解答我一直以来心里的一个疑问.是这样的,之前看五八技术委员会主席沈剑老师的公众号架构师之路的一篇文章:http 如何像 tcp 一样实时的收消息,里面其中的一个方案是用 http 短连接轮询的方式实现"伪长连接".但是对于轮询,我们的第一反应肯定是有延时,但是标题不是说的是实时吗?当然我们可以把轮询的时长缩短一些,先不说这样大部分时间的轮询调用,可能都没消息返回,造成服务器资源浪费,轮询时间再短也是有延时啊,所以难道是伪实时?反正一般消息延时个三五秒,甚至十

  • Java利用Dijkstra和Floyd分别求取图的最短路径

    目录 1 最短路径的概述 2 杰斯特拉(Dijkstra)算法 2.1 原理 2.2 案例分析 3 弗洛伊德(Floyd)算法 3.1 原理 3.2 案例分析 4 邻接矩阵加权图实现 5 邻接表加权图实现 本文详细介绍了图的最短路径的概念,然后介绍了求最短路径的两种算法:Dijkstra算法和Floyd算法的原理,最后提供了基于邻接矩阵和邻接表的图对两种算法的Java实现. 阅读本文需要一定的图的基础,如果对于图不是太明白的可以看看这篇文章:Java数据结构之图的原理与实现. 1 最短路径的概述

  • Java利用MYSQL LOAD DATA LOCAL INFILE实现大批量导入数据到MySQL

    Mysql load data的使用 数据库中,最常见的写入数据方式是通过SQL INSERT来写入,另外就是通过备份文件恢复数据库,这种备份文件在MySQL中是SQL脚本,实际上执行的还是在批量INSERT语句. 在实际中,常常会遇到两类问题:一类是数据导入,比如从word.excel表格或者txt文档导入数据(这些数据一般来自于非技术人员通过OFFICE工具录入的文档):一类数据交换,比如从MySQL.Oracle.DB2数据库之间的数据交换. 这其中就面临一个问题:数据库SQL脚本有差异,

  • Java利用Geotools实现不同坐标系之间坐标转换

    目录 Geotools maven配置 代码工具 使用示例 Geotools GeoTools 是一个开源的 Java GIS 工具包,可利用它来开发符合标准的地理信息系统.GeoTools 提供了 OGC (Open Geospatial Consortium) 规范的一个实现来作为他们的开发. GeoTools 被许多项目使用,包括 Web 服务,命令行工具和桌面应用程序. 核心功能 1.定义关键空间概念和数据结构的接口 Java 拓扑套件(JTS)提供的集成几何支持 使用 OGC 过滤器编

随机推荐