`

使用APACHE ORO 实现正则替换

    博客分类:
  • java
 
阅读更多

JAVA中的正则实现一直是一个混乱的情况,JDK提供的正则功能由于版本差异而存在向下不兼容的问题.

Apache的ORO作为外部LIB,多少可以缓解JVM版本差异.但由于JAVA开源的混乱局面,想做到"一次编写随处运行"还需要JAVA世界付出相当的努力.

以下为使用ORO实现正则替换的示例

 

   import org.apache.oro.text.regex.Perl5Matcher;
import org.apache.oro.text.regex.PatternMatcher;
import org.apache.oro.text.regex.PatternCompiler;
import org.apache.oro.text.regex.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Substitution;
import org.apache.oro.text.regex.Util;
import org.apache.oro.text.regex.Pattern;

 

 

/**
    * 在字符串中替换字符串。
    * @param str 原始字符串
    * @param reg  正则式
    * @param str2 替换成为字符串

 * @param num 替换次数,为0则replaceAll

    */

  public static String replace(String str,String reg,String str2,int num) {
 String result = str;
 if(num==0){num= Util.SUBSTITUTE_ALL;}
 try {
    String content = str;
    String ps1 = reg;

    PatternCompiler orocom = new Perl5Compiler();
    Pattern pattern1 = orocom.compile(ps1);
    PatternMatcher matcher = new Perl5Matcher();
    result = Util.substitute(matcher, pattern1, new Perl5Substitution(str2),
                             content, num);

  }
  catch (Exception e) {
    System.out.println(e);
  }
  return result;
}

 

 

http://blog.csdn.net/00x0/article/details/429865

分享到:
评论

相关推荐

    Apache ORO

    然而,随着JDK的发展,自1.4版本起,Java开始内置了java.util.regex包,提供了对正则表达式全面的支持,这使得Apache ORO的重要性相对减弱,但仍有一些开发者因其特定的功能和历史积累而继续使用。 Apache ORO库的...

    ant-apache-oro-1.6.3.jar.zip

    "ant-apache-oro-1.6.3.jar"是Apache ORO库的JAR文件,这个文件包含了所有必要的类和资源,可以在Java环境中直接使用,以实现Perl兼容的正则表达式功能。开发者可以通过引入这个JAR文件,将Apache ORO的功能集成到...

    ant-apache-oro-1.6.5.jar.zip

    Apache ORO库源于Oracle的Java正则表达式实现,它实现了Perl 5风格的正则表达式,这使得开发者能够在Java程序中使用类似于Perl的模式匹配功能。在Ant 1.6.5版本中,这个库被集成,为Ant的任务提供了更灵活的字符串...

    ant-apache-oro.jar.zip

    Apache ORO库是基于Perl 5的正则表达式引擎实现的,为Java开发者提供了强大的文本匹配和处理能力。在Ant中,这个库被用于处理各种配置文件、路径匹配、文件过滤等任务,极大地提升了Ant的任务执行效率和灵活性。 ...

    jakarta-oro.rar 正则表达式包

    Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会的一个开源项目,它提供了一个高性能的Java正则表达式库。这个库是基于Perl 5的正则表达式语法,为Java开发者提供了强大的文本匹配和处理功能...

    ant-apache-oro-1.6.2.jar.zip

    在Java开发领域,Ant是一个广泛使用的自动化构建工具,它基于XML来定义项目构建过程,而Apache ORO则是Ant中一个重要的组件,为Java程序提供了强大的正则表达式处理能力。在本文中,我们将深入探讨Ant Apache ORO ...

    ant-apache-oro.jar ant-apache-regexp.jar ant-apache-resolver.jar

    虽然与ant-apache-oro.jar类似,它们都涉及正则表达式,但每个库可能有不同的实现和特性。在Ant任务中,这个库可能用于更复杂的文本处理任务。 3. **ant-apache-resolver.jar**: 这个JAR文件包含了Apache Commons ...

    ant-apache-oro-1.6.4.jar.zip

    Apache ORO,全称为Oro Regular Expression Library,是Apache的一个子项目,提供了强大的正则表达式处理功能。在Ant中,ORO库被用来处理和解析复杂的正则表达式,常用于诸如文件匹配、文本替换等任务。例如,开发者...

    强大的JAVA正则表达式处理包jakarta-oro

    Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会开发的一个强大的Java正则表达式库,它为开发者提供了更为灵活和高效的正则表达式处理功能。在Java标准库中的java.util.regex包之外,Jakarta...

    java 正则表达式 perl5规范 jakarta-oro.jar

    Jakarta ORO(Oracle RegEx)库是Apache软件基金会的一个项目,它是一个高性能的Java正则表达式实现,受到了Perl 5正则表达式的启发。在Java中,`java.util.regex`包提供了正则表达式的核心支持,而Jakarta ORO则...

    Java正则表达式应用-Jakarta-ORO篇.doc

    使用Jakarta-ORO库时,你可以创建`Pattern`对象,编译正则表达式,然后创建`Matcher`对象来执行匹配和替换操作。例如: ```java import org.apache.regexp.RE; import org.apache.regexp.RESyntaxException; ...

    jakarta-oro-2.0.8.zip_jakarta oro.jar 2.0_jakarta-oro-2_jakarta-

    1. **高性能匹配引擎**:Jakarta ORO采用了高效的匹配算法,能够快速处理正则表达式,尤其是在处理大量数据时,其性能表现优于Java内置的正则表达式实现。 2. **模式编译和缓存**:ORO支持预编译正则表达式模式,...

    jakarta-oro-2.0.8.zip

    使用Jakarta ORO时,开发者可以通过创建`Pattern`对象,预编译正则表达式,然后使用`Matcher`对象在目标字符串上执行匹配、查找、替换等操作。例如: ```java import org.apache.oro.text.regex.*; Pattern pat = ...

    正则表达式.doc正则表达式.doc

    - **Apache ORO库**:在JDK不支持正则表达式时,可以通过第三方库如Apache ORO来实现正则表达式的功能。 在Java中,可以使用`Pattern`类编译正则表达式,并用`Matcher`类进行匹配和查找操作。例如: ```java ...

    java正则表达式详解

    本文详细介绍了Java正则表达式的使用方法,包括基本的正则表达式符号和操作符,以及如何使用Jakarta-ORO库进行更复杂的文本处理任务。掌握这些基础后,可以有效地利用正则表达式解决实际开发中的问题,提高代码的...

    jakarta-oro-2.0.1

    Jakarta ORO库的核心功能主要围绕Perl5兼容的正则表达式(PCRE)实现,这使得开发者可以使用类似于Perl的语法来匹配、查找、替换和分割字符串。在Java中,这为处理文本数据提供了更灵活的方式,尤其是在处理大量文本...

    正则表达式.doc 正则表达式

    在Java中,虽然标准API在某些版本中才正式引入正则表达式,但可以通过Apache的Jakarta-ORO库来提前使用相关功能。Jakarta-ORO库提供了一套API,使得开发者能够方便地在Java应用中使用正则表达式进行文本处理。 正则...

    jakarta-oro-2.0.8.rar_Perl5Util jar_jakarta-oro-2.0.8_oro

    Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会的一个开源项目,它提供了一个高性能的Java正则表达式引擎。这个项目的主要目标是为Java开发者提供与Perl 5正则表达式语法兼容的库,名为Perl...

    Java正则表达式使用

    - 虽然Java规范在撰写时没有内置正则表达式支持,但可以通过引入外部库,如Apache的Jakarta-ORO来实现。在JDK的后续版本中,正则表达式被内建支持,主要通过`java.util.regex`包中的类,如`Pattern`和`Matcher`来...

    java正则表达式 regx

    虽然在Java规范需求(Specification Request)中正则表达式的支持是在后续版本引入的,但在早期版本中,开发者可以通过第三方库如Apache的Jakarta-ORO来实现正则表达式功能。 正则表达式的基础知识包括以下几个关键...

Global site tag (gtag.js) - Google Analytics