阅读更多

23顶
2踩

编程语言

原创新闻 Java7: 正则表达式将支持命名捕获组

2009-03-12 08:53 by 见习编辑 Eastsun 评论(9) 有13946人浏览
  目前Java的正则表达式不支持命名捕获组功能,只能通过捕获组的计数来访问捕获组.当正则表达式比较复杂的时候,里面含有大量的捕获组和非捕获组,通过从左至右数括号来得知捕获组的计数也是一件很烦人的事情;而且这样做代码的可读性也不好,当正则表达式需要修改的时候也会改变里面捕获组的计数.
  解决这个问题的方法是通过给捕获组命名来解决,就像Python, PHP, .Net 以及Perl这些语言里的正则表达式一样.这个特性Javaer已经期待了很多年,而现在我们终于在JDK7 b50得到了实现.
  新引入的命名捕获组支持如下:
   (1) (?<NAME>X) to define a named group NAME"                    
   (2) \k<Name> to backref a named group "NAME"                 
   (3) <$<NAME> to reference to captured group in matcher's replacement str
   (4) group(String NAME) to return the captured input subsequence by the given "named group"

  现在你可以像这样使用正则式:
String pStr = "0x(?<bytes>\\p{XDigit}{1,4})\\s++u\\+(?<char>\\p{XDigit}{4})(?:\\s++)?";
    Matcher m = Pattern.compile(pStr).matcher(INPUTTEXT);
    if (m.matches()) {
        int bs = Integer.valueOf(m.group("bytes"), 16);
        int c =  Integer.valueOf(m.group("char"), 16);
        System.out.printf("[%x] -> [%04x]%n", bs, c);
    }

或者
    System.out.println("0x1234 u+5678".replaceFirst(pStr, "u+$<char> 0x$<bytes>"));
23
2
评论 共 9 条 请登录后发表评论
9 楼 lookdd1 2009-03-13 15:43
java7  有传言支持闭包?
8 楼 littlealex 2009-03-13 15:05
7 楼 norety 2009-03-12 18:57
  
6 楼 不吃鱼的猫 2009-03-12 13:16
不是有java版的perl regex包吗?
5 楼 allenny 2009-03-12 12:29
ray_linn 写道

先增加C#里的@吧。。。

正解,先把表达式负责度降下来
4 楼 whaosoft 2009-03-12 11:28
这个功能挺不错的~!!
3 楼 ray_linn 2009-03-12 11:22
先增加C#里的@吧。。。
2 楼 wjsun84 2009-03-12 09:56
有没有 java7 的发布计划时间表
1 楼 tianhaoleng 2009-03-12 09:32
支持一下,期待java7

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Borland_Kylix_3_Enterprise_keygen

    Borland_Kylix_3_Enterprise_keygen

  • linux可视化编程,Kylix带你走进Linux可视化编程世界

    文/李雷鸣Kylix是Borland于年初推出的Linux版本的Delphi,同样使用Object Pascal语言。它采用以Xwindow Qt开发组件为基础的新的组件架构CLX,与Red Hat 6.2等多数Linux系统兼容,是基于Linux系统的第一套集界面设计、代码编写、调试运行于一体的RAD。快速开发运行Kylix,通过其IDE环境(图1)就可以设计程序了。你可以从控件板上选取控件放到...

  • Kylix安装配置实战 .

    Kylix安装配置实战 分类: Ubuntu 2008-08-19 23:08 94人阅读 评论(0) 收藏 举报 borlandlinux数据库linux内核delphigtk   Kylix(基里克斯陶杯) 原来是希腊神话中的一种器具(如图1),Inprise/Borland 将它命名为Linux平台上的RAD(快速应用程序)开发工具,给网络界很大的冲击。传统的

  • Linux的开发利器,Kylix (我决定用它,因为涉及到复杂数据库操作,并且需要编译后的效率)

    原文出处: http://www.dgdown.com.cn/Programming/Delphi/8705_4.html前言     Linux可以说是IT业的一个奇迹,对于它的存在,任何一个业内人士都不敢等闲视之。目前,Linux面临的最大问题就是应用程序太少,不能满足各个领域使用者的需求,这是Linux很难战胜Windows的主要原因之一。虽然,随着许多公司和编程爱好者的加入,这种局面正

  • 基于Linux的快速开发工具Kylix

    介绍了 基于Linux的快速开发工具kylix的优缺点

  • Kylix3 linux下的delphi

    Kylix3。BLAND早期 linux下的 delphi,现在的linux也不一定支持了,怕误删除找不到了,所以放在这里。怀旧情节的人可下载了解一下。

  • [Borland.Kylix&#8482;.3.企业版含破解].Borland.Kylix.3.Enterprise.Linux.-.crack.zip

    [Borland.Kylix&#8482;.3.企业版含破解].Borland.Kylix.3.Enterprise.Linux.-.crack.zip

  • Kylix安装配置实战

    绍Kylix的安装。

  • Kylix...

    http://www.kylix.com.cn/Kylix介绍在1999年9月28日Inprise/Borland声明要开发一个“支持C、C 和Delphi的高性能Linux应用程序开发环境”时,Kylix正式启动,它是第一个基于Linux的高性能RAD工具。当时的声明里提到:目前Kylix项目计划开发为一个基于Linux的双向可视化组件开发环境,可以开发GUI、Internet、数据库和服务

  • Kylix

     Kylix是Borland公司推出的GNU/Linux版的开发环境,相对于Windows下的Delphi以及C++ Builder。通过Kylix,程序员可以在GNU/Linux下使用Object Pascal、C++或者C语言,进行软件开发。目前这个工具的前景不明朗,没有推出新版(Kylix 4)的迹象。对于Delphi 2005,也没有升级的途径,Delphi 2005可能不包含CL

  • Kylix安装手记

    Kylix安装手记 Kylix早已经发布了,作为一个Delphi程序开发爱好者,又是一个unix的忠实用户。当我看到有Linux上的Delphi时,忍不住想要试它一试,所以就早早地预定了一套Kylix的服务器版。我收到的Kylix的服务器版中有以下东东: Kylix服务器版光盘 用户开发手册 SuSE 测试版光盘 对象层次结构说明书 Pascal

  • 关于kylix的再次说明

     近期kylix将在台湾发行,为了让国内的同行,特别广大delphi用户也能用到 linux上的delphi,我公布一个网址: ftp://203.148.249.2/Kylix%20by%20MaZ/ 用户名和密码全为123  注意一次只能开三个线程。不过这是kylix beta2,现在beta4版也出来了,请大家到国外网站找找

  • 安装Kylix

    来自http://www.kylix.com.cn安装Kylix以普通身份登陆。(注意不要用root身份登陆) 如果用root,第四步请改为:./setup.sh -m 启动X Whdow,打开一个终端。 加载CD-ROM文件系统。 在命令行输入: ./setup.sh 首先显示的是版权信息页。 Klix的缺省安装位置为安装者的home目录。安装中,我们可以选择两个目录

Global site tag (gtag.js) - Google Analytics