`
fhqibjg
  • 浏览: 55100 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

java正则对内容进行分析替换

    博客分类:
  • java
阅读更多

  我们在项目中常用到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正则表达式.zip

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它基于模式匹配的概念,能够高效地进行文本搜索、替换和解析。在Java中,正则表达式主要通过`java.util.regex`包来实现,提供了Pattern和Matcher两个核心...

    jJAVA正则表达式替换字符

    本资源文件是我自己总结的,其中包括5个类,这5个类的代码基本概括了java正则表达式替换String的多种情况,比如获取某个文件路径中盘符/后边的部分内容,提取"&lt;title&gt;XXXX&lt;/title&gt;"中的文字XXXX,用正则表达式获取指定...

    Java正则表达式 Java 正则表达式

    Java正则表达式是Java语言中用于处理字符串的强大工具,它允许程序员进行复杂的字符串匹配、查找和替换操作。正则表达式(Regular Expression)是一种模式匹配语言,通过特定的语法来描述字符串的模式,用于在文本中...

    java正则表达式替换字符串

    本文将详细介绍如何使用Java正则表达式进行字符串替换,并通过具体的代码示例来展示其实现过程。 #### 二、基础知识 ##### 1. 正则表达式简介 正则表达式(Regular Expression),通常被简称为regex或regexp,是一...

    Java正则表达式去除img标签的src内容

    java代码,从image标签中正则匹配取出src标签的内容,java代码,从image标签中正则匹配取出src标签的内容

    Java正则表达式测试工具

    总之,Java正则表达式测试工具是一个方便的开发辅助工具,它提供了对正则表达式的快速验证和调试功能。无论你是初学者还是经验丰富的开发者,都能从中受益,提高工作效率,避免因正则表达式错误导致的问题。通过结合...

    JAVA正则表达式大全

    在IT领域,正则表达式(Regular Expression,简称regex)是一种强大的文本处理工具,它用于匹配、查找、替换和分析字符串。在Java编程语言中,正则表达式被广泛应用于数据验证、文本提取和字符串操作。以下是对这些...

    Java正则表达式的替换和分组功能

    第二个是替换内容。 例如,在Java代码中,如果想要将字符串中的所有数字替换为空字符串,可以使用如下代码: ```java String str = "wo1shi2zhong3guo4ren"; String regex = "\\d"; // \d表示任意数字 String ...

    java正则表达式匹配工具

    Java正则表达式匹配工具是IT领域中一种强大的文本处理工具,它利用正则表达式(Regular Expression)的规则来查找、替换或者提取文本中的特定模式。正则表达式是一种特殊的字符序列,能够帮助程序员或者用户高效地...

    怎么利用Java正则表达式换模板

    以下是一个详细解释如何利用Java正则表达式进行模板替换的过程。 1. **理解正则表达式** 正则表达式(Regular Expression)是一种模式匹配语言,用于在字符串中查找、提取或替换特定模式的字符序列。例如,`\d+`...

    学习Java正则表达式(匹配、替换、查找)

    Java正则表达式是编程语言Java中用于处理文本的强大工具,它可以用来匹配、替换、查找和分割字符串。在本文中,我们将深入探讨这些操作,并通过示例代码进行演示。 首先,我们来看匹配(matches)。`matches()` ...

    Java正则表达式.ppt

    Java正则表达式是一种强大的文本处理工具,广泛用于验证字符串、查找特定模式和替换文本。在Java中,正则表达式提供了简洁而灵活的方式来处理字符串,使得编程人员能够以更高效的方式实现各种文本操作。 正则表达式...

    Java正则表达式应用总结

    总之,Java正则表达式提供了强大的文本处理功能,结合`Pattern`和`Matcher`类,开发者可以高效地处理字符串,进行搜索、替换、分割等操作。理解并熟练运用这些工具对于任何Java开发者来说都是非常有价值的技能。

    Java 正则表达式库

    这个库不仅包含了标准Java API中的`java.util.regex`包,还可能包含了一些第三方库,如`automaton-1.11-7`,这可能是对Java正则表达式功能的一种扩展或优化。 正则表达式的语法是相当丰富的,包括字符类(如`\d`...

    Java正则表达式详细讲解

    Java正则表达式是Java编程语言中用于处理字符串的强大工具,它允许程序员通过模式匹配来查找、替换或分割文本。在Java中,正则表达式是通过`java.util.regex`包提供的API来实现的。本讲解将深入探讨Java正则表达式的...

    java 正则匹配所有 {},并取出所有符合的字符串。

    在Java编程语言中,正则表达式是一种强大的文本处理工具,可以用来匹配、查找、替换和解析字符串。这里我们关注的是如何使用正则表达式来匹配所有包含在花括号 `{}` 中的字符串,并将其提取出来。这在处理模板引擎、...

    java 正则替换 保留原值并增加' ',

    在Java中,我们通常使用`String`类提供的`replaceAll()`方法来执行正则替换。这个方法接受两个参数:第一个是正则表达式,第二个是替换字符串。然而,如果我们想要在替换过程中保留原值的一部分,就需要利用正向预查...

    java正则表达式详解(PDF)

    本文件"java正则表达式详解(PDF)"深入探讨了这一主题,下面将对其中的主要知识点进行详细介绍。 1. **正则表达式基本概念** - **模式匹配**:正则表达式是一种模式,用于匹配字符串中的特定序列。 - **元字符**...

    java正则表达式.pdf

    ### Java正则表达式详解 #### 一、引言 正则表达式是计算机科学中的一个强大工具,用于处理文本数据。随着Java的发展,自J2SE 1.4版本开始,Java正式引入了对正则表达式的支持,并提供了一系列功能强大的API。本文...

Global site tag (gtag.js) - Google Analytics