阅读更多

23顶
2踩

编程语言

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

2009-03-12 08:53 by 见习编辑 Eastsun 评论(9) 有14114人浏览
  目前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 数据库应用简介 (转)[@more@]kylix 数据库应用简介(施晓军 2001年06月20日 10:56) Kylix是业界著名的美国软件公司Borland正式发布的第一款专门为Linux操作系统推出的快速开发...

  • Kylix安装配置实战 .

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

  • Kylix安装手记

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

  • 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的安装。

  • Linux的开发利器,Kylix

    Linux的开发利器,Kylix 2001-08-22 15:00:00· 伊秋水· chinabyte1 2 3 4  下一页前言     Linux可以说是IT业的一个奇迹,对于它的存在,任何一个业内人士都不敢等闲视之。目前,Linux面临的最大问题就是应用程序太少,不能满足各个领域使用者的需求,这是Linux很难战胜Windows的主要原因之一。虽

  • Ubuntu 5.1下安装Kylix3

    首先要安装好Ubuntu——废话。然后,就是装Kylix3。为了保险起见,我是在root用户下安装的,可能用sudo方式也可以。另,据说需要在英文方式下安装,所以我切换到英文状态下装的——即使是装成中文的Ubuntu也可以在登录前选择语言——没试过在中文方式下安装行不行。 据我的经验是,在ubuntu 5.1下直接安装Kylix3会报错:libgtk版本不对。解决办法当然就是装一个对的版本

  • Kylix 3 企业版安装手记

    Kylix 3企业版安装手记******************************************************************************                                                                           **    知识产权声明                   

Global site tag (gtag.js) - Google Analytics