我们在项目中常用到java正则对文本内容进行分析替换,有时虽然只是简单的一行replace代码,却无不用到正则。这里java正则的语法将不再述说,重点说说如何对匹配的内容进行替换操作。
这里拿上一篇文章中的自定义标签作为例子来进行说明
{xxx:arclist typeid="" sum="" orderasc="" limit="1,2"}
<a
href="
[xx:url]">[xx:title
"
]</a>
{/xxx:arclist}
上面标签假如是个自定义的文章列表标签,很显然对我们有用的条件参数只是 typeid=" " sum=" " ... ... 到limit=" "这一段,所以我们要将这一段内容拿出来。其次的就是自定义标签对中间的内容,因为我们是要对中间的自定义属性标签进行内容替换的。比如我们这取了十条数据,就要把每一条数据按中间的形式去替换,再把这十条数据放在标签对中间去。准确的说这替换后的十条数据就是我们要想的结果,更该是让这十条数据把整个标签对替换掉。
下面是具体代码如何去匹配和替换
String regx = "\\{xxx:arclist([^\\}]*)\\}(.*?)\\{/xxx:arclist \\}";
Pattern p = Pattern.compile(regx);
Matcher m = p.matcher(content); // content为你要分析的文本内容
String groupStr = null; // 匹配参数条件组
String groupStr1 = null; // 匹配内部属性标签
String[] paramsStr = null; // 获取参数数组
StringBuffer sb = new StringBuffer();
StringBuffer sb_1 = new StringBuffer();
while(m.find()){
// 标签对获取数据,然后条件查询
groupStr = m.group(1).trim(); // 去掉首尾空格
groupStr = groupStr.replaceAll("\\s+"," "); // 把多个空格替换成一个
paramsStr = groupStr.split(" "); // 以空格分组成一数组
/**
* 这里的paramsStr 就是己获得的参数,扔给你获取数据的方法去解析并返回想要的结果集 listBean
*/
// 标签对内部内容
groupStr1 = m.group(2);
String str_1 = ""; // 用于一条数据替换后的结果
Pattern p_1 = Pattern.compile("\\[xx:([^\\]]*\\]");
for( objectBean bean :listBean){
Matcher m_1 = p_1.matcher(groupStr1);
while(m_1.find()){
/**
* 这里把每一个属性标签中应放的值value取出
*/
// 把属性标签替换成相应的数据
if(value == null){
m_1.appendReplacement(sb_1,"");
}else{
m_1.appendReplacement(sb_1,value.toString());
}
}
m_1.appendTail(sb_1); // 把属性标签替换后放入sb_1中
str_1 += sb_1; // 把一条数据替换后都入str_1中
sb_1.delete(0, sb_1.length()); // 这里清空内容是为下组标签对准备
}
m.appendReplacement(sb, str_1);
}
这样我们就己把所要分析的内容己全部分析和替换完成了,sb就是分析和替换全部完成后的内容。
分享到:
相关推荐
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...
本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"<title>XXXX</title>"中的文字XXXX,用正则表达式获取指定...
Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...
本文将详细介绍如何使用Java正则表达式进行字符串替换,并通过具体的代码示例来展示其实现过程。 #### 二、基础知识 ##### 1. 正则表达式简介 正则表达式(Regular Expression),通常被简称为regex或regexp,是一...
java代码,从image标签中正则匹配取出src标签的内容,java代码,从image标签中正则匹配取出src标签的内容
总之,Java正则表达式测试工具是一个方便的开发辅助工具,它提供了对正则表达式的快速验证和调试功能。无论你是初学者还是经验丰富的开发者,都能从中受益,提高工作效率,避免因正则表达式错误导致的问题。通过结合...
在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换和分析字符串。在Java编程语言中,正则表达式被广泛应用于数据验证、文本提取和字符串操作。以下是对这些...
第二个是替换内容。 例如,在Java代码中,如果想要将字符串中的所有数字替换为空字符串,可以使用如下代码: ```java String str = "wo1shi2zhong3guo4ren"; String regex = "\\d"; // \d表示任意数字 String ...
Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...
以下是一个详细解释如何利用Java正则表达式进行模板替换的过程。 1. **理解正则表达式** 正则表达式(Regular Expression)是一种模式匹配语言,用于在字符串中查找、提取或替换特定模式的字符序列。例如,`\d+`...
Java正则表达式是编程语言Java中用于处理文本的强大工具,它可以用来匹配、替换、查找和分割字符串。在本文中,我们将深入探讨这些操作,并通过示例代码进行演示。 首先,我们来看匹配(matches)。`matches()` ...
Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...
总之,Java正则表达式提供了强大的文本处理功能,结合`Pattern`和`Matcher`类,开发者可以高效地处理字符串,进行搜索、替换、分割等操作。理解并熟练运用这些工具对于任何Java开发者来说都是非常有价值的技能。
这个库不仅包含了标准Java API中的`java.util.regex`包,还可能包含了一些第三方库,如`automaton-1.11-7`,这可能是对Java正则表达式功能的一种扩展或优化。 正则表达式的语法是相当丰富的,包括字符类(如`\d`...
Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...
在Java编程语言中,正则表达式是一种强大的文本处理工具,可以用来匹配、查找、替换和解析字符串。这里我们关注的是如何使用正则表达式来匹配所有包含在花括号 `{}` 中的字符串,并将其提取出来。这在处理模板引擎、...
在Java中,我们通常使用`String`类提供的`replaceAll()`方法来执行正则替换。这个方法接受两个参数:第一个是正则表达式,第二个是替换字符串。然而,如果我们想要在替换过程中保留原值的一部分,就需要利用正向预查...
本文件"java正则表达式详解(PDF)"深入探讨了这一主题,下面将对其中的主要知识点进行详细介绍。 1. **正则表达式基本概念** - **模式匹配**:正则表达式是一种模式,用于匹配字符串中的特定序列。 - **元字符**...
### Java正则表达式详解 #### 一、引言 正则表达式是计算机科学中的一个强大工具,用于处理文本数据。随着Java的发展,自J2SE 1.4版本开始,Java正式引入了对正则表达式的支持,并提供了一系列功能强大的API。本文...