`

Jakarta ORO

阅读更多
Jakarta-ORO 是一个Java工具包用来在 Java 类中进行文本处理的功能,提供兼容 Perl5 的正则表达式、类 AWK 的正则表达式等。

下载:
http://archive.apache.org/dist/jakarta/oro/

ORO.java
package cn.bisoft.go;

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

public class ORO
{
    public void usage(String input, String regex)
    {
        // 1 创建 PatternCompiler
        PatternCompiler compiler = new Perl5Compiler();

        // 2 创建 Pattern
        Pattern pattern = null;
        try
        {
            /*
             * CASE_INSENSITIVE_MASK : 区分大小写
             * DEFAULT_MASK : 默认(不区分大小写)
             * EXTENDED_MASK : 支持Perl5 扩展正则表达式
             * MULTILINE_MASK : 多行匹配,^$匹配每行内容.
             * SINGLELINE_MASK :单行匹配  ^$匹配全部内容.
             * READ_ONLY_MASK : Perl5Pattern 是只读的,提高性能且线程安全.
             */
            pattern = compiler.compile(regex, Perl5Compiler.READ_ONLY_MASK|Perl5Compiler.MULTILINE_MASK);
        }
        catch (MalformedPatternException e)
        {
            e.printStackTrace();
        }

        // 3 创建 PatternMatcher
        PatternMatcher matcher = new Perl5Matcher();

        // 3.1 只匹配一次
        if (matcher.contains(input, pattern))
        {
            MatchResult matchResult = matcher.getMatch();

            System.out.println(matchResult.toString());
        }

        // 3.2 匹配多次, 使用PatternMatcherInput
        PatternMatcherInput patternMatcherInput = new PatternMatcherInput(input, 0, input.length());
        while (matcher.contains(patternMatcherInput, pattern))
        {
            MatchResult matchResult = matcher.getMatch();

            /*
             System.out.println(matchResult.begin(0));  // 0分组索引 , 匹配串开始值 ,如匹配串xxxx xxx, 总是0.
             System.out.println(matchResult.end(0));    // 0分组索引, 匹配串结束值 , 如xxxxxxx , 则相应值为 4 3.
             System.out.println(matchResult.beginOffset(0)); // 0分组索引,匹配串在源串开始索引
             System.out.println(matchResult.endOffset(0));  // 0分组索引,匹配串在源串结束索引
             System.out.println(matchResult.groups()); // 分组数量
             System.out.println(matchResult.length()); // 匹配串长度
             System.out.println(matchResult.toString()); // 匹配串
             */

            String group = matchResult.group(0); // group 是正则表达式里面的()个数, 0// 代表匹配串, 1 代表第一个括号匹配串

            System.out.println(group); // tangliang

            group = matchResult.group(1); 
            System.out.println(group); // g

            group = matchResult.group(2);
            System.out.println(group); // g

        }

        // 4 创建替换对象 Substiution
        Perl5Substitution substiution = new Perl5Substitution("amos_tl");

        // 5 文本替换
        String output = Util.substitute(matcher, pattern, substiution, input, Util.SUBSTITUTE_ALL);

        System.out.println("output:" + output); // output:xxxxTangliangxxxamos_tlxxx
    }

    public static void main(String[] args)
    {
        ORO oro = new ORO();

        oro.usage("xxxxTangliangxxxtangliangxxx", "tan(g)lian(g)");
    }
}

分享到:
评论

相关推荐

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

    Jakarta ORO,全称是Oracle Regular Expressions for Java,是一个开源项目,它为Java平台提供了强大的正则表达式处理库。Jakarta ORO是Apache软件基金会Jakarta项目的一部分,其版本号为2.0.8,这表明它是经过多次...

    jakarta-oro-2.0.1.zip_Jakarta ORO _Jakarta-O_jakarta-oro-2_jakar

    Jakarta ORO,全称是Oracle Regular Expressions for Java,是一个由Apache软件基金会开发的Java库,主要用于处理正则表达式。这个库在Java社区中广泛使用,因为它提供了比Java内置正则表达式引擎更丰富的功能和更高...

    Jakarta-ORO 2.0.8 API

    Jakarta ORO(Oracle Regular Expressions for Java)是Apache软件基金会的一个开源项目,它为Java开发者提供了一套强大的正则表达式处理库。这个库在Java标准库的java.util.regex包之外提供了额外的功能和性能优化...

    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...

    jakarta-oro-2.0.8 java正则表达式扩展

    Jakarta ORO,全称是Oracle Regular Expressions for Java,是由Apache软件基金会开发的一个Java正则表达式库。它是对Java内置的正则表达式功能的扩展,提供了更丰富的功能和更高的性能。Jakarta ORO在Java社区中...

    jakarta-oro-2.0.8.zip

    Jakarta ORO,全称是Oracle Regular Expressions for Java,是由Apache软件基金会开发的一个开源项目,主要用于Java平台的正则表达式处理。这个项目在Java社区中被广泛使用,为开发者提供了一套强大的文本匹配和搜索...

    commons-net-1.4.1 和 jakarta-oro-2.0.8 .rar

    压缩包中的"jakarta-oro-2.0.8.jar"是Jakarta ORO库的JAR文件,可以直接引入Java项目中使用。而"commons-net-1.4.1.zip"则是Apache Commons Net库的源代码压缩包,通常用于开发人员查看源代码、调试或自定义库的功能...

    ant-jakarta-oro-1.6.1.jar.zip

    标题中的"ant-jakarta-oro-1.6.1.jar.zip"是一个压缩文件,它包含的是Jakarta ORO库的1.6.1版本,该库是为Apache Ant项目设计的一个正则表达式处理组件。Apache Ant是一个广泛使用的Java构建工具,类似于Unix的make...

    FTP上传下载所需jakarta-oro-2.0.8.jar.rar

    Jakarta ORO是Apache软件基金会开发的一个开源Java库,它主要提供正则表达式处理功能。这个库在很多Java项目中被广泛使用,特别是在需要文本匹配、搜索和替换的场景下。Jakarta ORO库包含了Perl 5风格的正则表达式...

    jakarta-oro-2.0.1

    Jakarta ORO(正则表达式对象)是Apache软件基金会Jakarta项目的一部分,它提供了一个强大的正则表达式处理库,适用于Java开发人员。这个2.0.1版本的发布在与日志处理框架如Log4j配合使用时,能够极大地增强对日志...

    apache的FTP包commons-net-1.4.1.jar,jakarta-oro-2.0.8.jar

    `jakarta-oro-2.0.8.jar`则是Jakarta ORO(Oracle Regular Expressions for Java)库,它提供了Perl 5风格的正则表达式支持。虽然在FTP操作中不是必需的,但它在处理字符串时非常有用,比如在解析FTP服务器返回的...

    jakarta-oro.rar 正则表达式包

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

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

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

    commons-net-3.3.jar、jakarta-oro-2.0.8.jar、javacsv.jar

    Jakarta ORO(ORegexp和OText)是一个正则表达式库,它为Java提供了Perl风格的正则表达式匹配和替换功能。虽然"jakarta-oro-2.0.8.jar"不是直接用于FTP连接的库,但在处理FTP服务器返回的数据,比如解析目录列表或...

    ftp所需jar包(commons-net-1.4.1.jar,jakarta-oro-2.0.8.jar)

    `jakarta-oro-2.0.8.jar` 是一个正则表达式处理库,由Jakarta项目提供。虽然这个库主要不是为了FTP服务设计的,但它在处理字符串和模式匹配时非常有用,尤其是在解析和验证FTP服务器上的文件路径或者配置信息时。...

    FTPCLIENT_commons-net-1.4.1_jakarta-oro-2.0.8

    另一方面,`jakarta-oro-2.0.8.jar`是Jakarta ORO库的一个版本,它是Apache的一个正则表达式处理库。在FTP客户端应用中,虽然它不是直接用于文件传输,但可能会用于处理文件名或路径的匹配、过滤等场景。例如,你...

    ffmpeg通过jakarta-oro获取视频信息

    在本示例中,我们将探讨如何利用FFmpeg与Jakarta ORO库来获取视频的关键信息。Jakarta ORO是一个正则表达式处理库,通常用于文本模式匹配和替换,但在此场景下,它可能被用来解析FFmpeg输出的信息。 首先,我们需要...

    ant-jakarta-oro-1.6.jar.zip

    标题“ant-jakarta-oro-1.6.jar.zip”所指的是一款名为“ant-jakarta-oro-1.6.jar”的Java档案文件(JAR),它被压缩成ZIP格式便于下载和分发。这款软件包是Apache Ant项目的一个组成部分,其中包含了一个名为...

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

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

    jakarta-oro.jar

    Jakarta-ORO是最全面以及优化得最好的正则表达式API之一,Jakarta-ORO库以前叫做OROMatcher,是由Daniel F. Savarese编写,后来他赠给Jakarta Project。 Jakarta-ORO正则表达式库支持Perl5兼容的正则表达式语法。

Global site tag (gtag.js) - Google Analytics