`
rosen
  • 浏览: 38294 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

Jakarta-ORO 分解 IP 地址

阅读更多
    前几天就在着手写本文了。情景是这样的,一个“192.168.0.1”的 IP 地址,按照“.”标志分解成四段,考虑片刻打算以 Jakarta-ORO 实现。
    但是写着写着,发现用 String.split(String arg0) 方法也可以实现需求。遂陷入了迷茫,而后转念一想,鸡肋就鸡肋吧,说不定下次会在其他地方用到。
   
    先来看看 String.split(String arg0) 是如何实现的,下面是最想当然的写法:

public class SplitTest {

    

public static void main( String[] args ){
        String ip 
= "192.168.0.1";
        String[] ips 
= ip.split(".");
        System.out.println(ips.length);
    }
}



    嗯,测试以后,控制台打印出“0”,那这样一来 String.split(String arg0) 岂不是不能实现需求咯?且慢,我们如果加上转义符会怎样呢?

public class SplitTest {

    

public static void main( String[] args ){
        String ip 
= "192.168.0.1";
        String[] ips 
= ip.split("\\.");
        System.out.println(ips.length);
    }
}



    这次终于如愿以偿了,控制台打印出“4”。至于为什么会这样,我也没有深入探索,和朋友交流后大概是说“.”在 Java 中有特殊含义,如果要进行正则匹配,就必须转义一下。
   
    转入 Jakarta-ORO,下面看看它是如何进行匹配的:

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.Perl5Compiler;
import org.apache.oro.text.regex.Perl5Matcher;


public class SplitTest {

    

public static void main( String[] args ) throws MalformedPatternException{
        String ip 
= "192.168.0.1";
        PatternCompiler pc 
= new Perl5Compiler();
        PatternMatcher pm 
= new Perl5Matcher();
        Pattern pattern 
= pc
                .compile(
"([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})\\.([0-9]{1,3})");
        pm.contains(ip, pattern);
        MatchResult mr 

= pm.getMatch();
        
int ip0 = Integer.parseInt(mr.group(1));
        
int ip1 = Integer.parseInt(mr.group(2));
        
int ip2 = Integer.parseInt(mr.group(3));
        
int ip3 = Integer.parseInt(mr.group(4));
                System.out.println(ip0
+" "+ip1+" "+ip2+" "+ip3);
    }
}



    关于 Jakarta-ORO 更多的信息,网上一搜一大堆,在此就不进行细致的代码解释了。



请注意!引用、转贴本文应注明原作者:Rosen Jiang 以及出处:http://www.blogjava.net/rosen

Rosen 2005-10-25 11:17 发表评论



















分享到:
评论

相关推荐

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

    而`jakarta-oro-2.0.8`目录可能包含了完整的源代码、API文档和其他相关资源,如构建脚本和测试用例,这些都是深入学习和调试的重要资料。 总的来说,Jakarta ORO 2.0.8提供了与Perl 5兼容的正则表达式引擎,对于...

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

    而"jakarta-oro-2.0.1"可能是一个包含源码、jar文件和其他资源的目录,供开发者研究和集成到他们的项目中。 总的来说,Jakarta ORO 是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库的源代码压缩包,通常用于开发人员查看源代码、调试或自定义库的功能...

    jakarta-oro-2.0.8.jar

    使用commons的net包进行ftp链接,commons-net包封装了一些常见的网络包:ftp,smtp,pop3等 相关包:commons-net-1.4.1.jar ; commons-io-1.4.jar;jakarta-oro-2.0.8.jar

    apache-jakarta-oro-2.0.8.jar

    jar包,亲测可用

    jakarta-oro.jar

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

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

    "FTP上传下载所需jakarta-oro-2.0.8.jar"这个标题表明,jakarta-oro-2.0.8.jar文件是用于FTP上传或下载过程中的一种依赖。可能的情况是,某个FTP客户端工具或服务器端脚本需要这个库来执行特定的文本处理操作,例如...

    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服务器返回的...

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

    Java正则表达式是Java语言中用于处理文本和模式匹配的重要工具,虽然在早期的Java版本中并未直接内置正则表达式支持,但通过引入第三方库如Jakarta-ORO,开发者可以方便地在Java应用中使用正则表达式。Jakarta-ORO是...

    jakarta-oro-2.0.8.zip

    "jakarta-oro-2.0.8.zip" 是该项目的版本2.0.8的压缩包文件,包含了完整的源代码和可能的库文件。 正则表达式(Regular Expression)是一种模式匹配语言,用于在文本中查找、替换或提取特定的字符串模式。Jakarta ...

    jakarta-oro-2.0

    Jakarta-ORO是最全面以及优化得最好的正则表达式API之一,Jakarta-ORO库以前叫做OROMatcher,是由Daniel F. Savarese编写,后来他将其赠与Jakarta Project,可在Apache.org的网站下载该API包。 许多源代码开放的正则...

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

    在压缩包"jakarta-oro-2.0.8.zip"中,包含了一个名为"jakarta-oro-2.0.8.jar"的文件,这是Jakarta ORO库的二进制版本,可以直接在Java项目中作为依赖使用。另一个文件"www.pudn.com.txt"可能是示例文本或测试用例,...

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

    jakarta-oro-2.0.6.jar

    jakarta-oro-2.0.6.jar对Struts的验证框架的mask验证规则所用到的类库

    FTPCLIENT_commons-net-1.4.1_jakarta-oro-2.0.8

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

    Jakarta-ORO正则表达式库

    jakarta-oro.jar包供大家享用 博文链接:https://xzio.iteye.com/blog/117213

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

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

    apache-jakarta-oro.jar.zip

    Jakarta-ORO是最全面以及优化得最好的bai正则表达式API之一,duJakarta-ORO库以前叫做zhiOROMatcher,是由Daniel F. Savarese编写,后来他将其赠与daoJakarta Project。是面向JAVA的正则表达式库

    commons-net-1.4.1和jakarta-oro-2.0.8和pinyin4j-2.5.0

    请下载者看清楚再下载,以免造成不必要的损失 commons-net-1.4.1为org.apache.commons.net下的jar jakarta-oro-2.0.为org.apache.oro.io下的jar pinyin4j-2.5.0为net.sourceforge.pinyin4j下的jar

Global site tag (gtag.js) - Google Analytics