[Regex]Greta不支持“Named Groups”特性

news/2025/5/24 8:15:54

微软研究院出品的Gretahttp://research.microsoft.com/projects/greta/)是一款非常优秀的正则表达式模板类库GRETA的匹配速度比boost(http://www.boost.org)正则表达式库大约快7倍,比ATL7CATLRegExp10倍。你可以通过http://research.microsoft.com/projects/greta/regex_perf.html了解他的超快速度。

但是他并不支持“Named Groups”特性,这在dotNet Regex引擎中是提供的。

Greta花费了半天时间总是试验不出来这个特性后,只好去问了维护这个引擎的微软工程师。下面是来往信件:

发件人: Chris Quirk [mailto:chrisq…(at)microsoft.com]
发送时间: 20049212:59
收件人: Yun Zheng; Ashish Aggarwal
主题: RE: greta gripe:for groupname syntax

Greta doesn’t support named groups; instead, it uses the more standard approach of numbering them.

 

So you should check your regex to

          "^(//w+):(//w+)"

Then you access the first group as capture number 1 and the second as capture number 2, as in Perl, etc.

 

As far as I know, named captures are a peculiarity of the .NET Regex engine.

 


From: Yun Zheng
Sent: Sunday, September 19, 2004 9:27 PM
To: Ashish Aggarwal; Chris Quirk
Subject: greta gripe:for groupname syntax

  

Hi!

I'm using greta now.It's very perfect,but I have a question:

In C#,I can do this:

[C#]
    Regex r = new Regex("^(?//w+):(?//w+)");
    Match m = r.Match("Section1:119900");

But, in VC7+greta-2[1].6.4,I run this codes: 

std::string strDest("Section1:119900");
    regex::rpattern pat("^(?//w+):(?//w+)",           
           regex::NOCASE|regex::GLOBAL|regex::EXTENDED);
    regex::match_results::backref_type br 
           = pat.match( strDest, results );

when run to construct rpattern,I get bad_regexpr( "bad extension sequence" ) exception.

 

How does Greta support groupname syntax?

 

Thanks!

Yun Zheng 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=112710



https://dhexx.cn/news/show-3787161.html

相关文章

Java 解压zip压缩包

因为最近项目需要批量上传文件,而这里的批量就是将文件压缩在了一个zip包里,然后读取文件进行解析文件里的内容。 因此需要先对上传的zip包进行解压。以下直接提供代码供参考: 1.第一个方法是用于解压zip压缩包的方法。 2.第二个方法是 删除该…

[C#][正则表达式]寻找匹配的Groups的几种方法

寻找匹配的Groups的几种方法示例&#xff1a;// // 两种大方法: // MatchCollection<->Matches // Match<->Match方式 // // 第一大种&#xff1a; MatchCollection mMCollection oRegex.Matches(strHTMLContent); if(mMCollection.Count > 1) { forea…

python的bool类型

布尔型bool 命令行输入 a Trueb Falsetype(a) # 结果为:<class bool>type(b) # 结果为:<class bool> 空值 a # 这个a不是空值,只能是空字符串a 0 # 这个…

Oracle延长了对Java 8 免费支持的时间

\看新闻很累&#xff1f;看技术新闻更累&#xff1f;试试下载InfoQ手机客户端&#xff0c;每天上下班路上听新闻&#xff0c;有趣还有料&#xff01;\\\Oracle更新了他们对Java 8免费支持的路线图。\\InfoQ最近报道了Java支持的潜在“悬崖边缘”&#xff0c;它可能会使大多数Ja…

[C#][固定格式网页解析]使用正则表达式处理网页的初步体会

用IE WebControl解析网页得到特定网页中的特定数据&#xff1a;Set oDocument Form2.m_IE.Document Set oelement oDocument.Forms("searchdetail") Set oListTableElement oelement.children(0).children(0)这样的好处是简单&#xff0c;但坏处是&…

第60期:详解移动互联网背后的安全技术

【主题】详解移动互联网背后的安全技术 【讲师】张楚 豆荚科技创始人 【时间】10月10日 20:00-21:00 【地点】物联网智库微信群 【提纲】 1.移动支付带来的影响 2.生物识别背后的安全保护技术TEE 3.TEE技术将如何促进移动互联网应用的发展 【讲师简介】 张楚&#xff0c;北京豆…

新闻组搜索技术讨论的利器

新闻组利器http://groups-beta.google.com/和http://www.google.com/advanced_group_search?hlzh-CN。尤其是前者&#xff0c;可以自定义自己喜欢的My Groups&#xff0c;My starred topics?&#xff0c;Recent groups&#xff0c;如果你有Google帐号或者Gmail帐号的话。Tra…

python列表的基本操作

列表的基本操作 获取列表的一些基本信息 list1 [9, 1, -4, 3, 7, 11, 3]# print(list1的长度, )print(list1的长度, len(list1)) # list1的长度 7# print(list1里的最大值, )print(list1里的最大值, max(list1)) # list1里的最大值 11# print(l…

ERP系统新功能如何应用在企业实施中

在岁末年初之际&#xff0c;中国企业管理软件开发商和服务提供商智邦国际&#xff0c;宣布正式发布新一代ERP系统&#xff0c;带来全新升级的生产模块和更加流畅的交互体验&#xff0c;除了在功能上进行重大突破&#xff0c;因为引入更多智能技术&#xff0c;实现企业由“一体化…

[收藏]说声放弃太容易-Sunny

说声放弃太容易 原创&#xff1a;梁宁[Sunny]( 2004-04-16 14:14:16) 细草穿沙雪半消&#xff0c;吴官烟冷水迢迢。 梅花竹里无人见&#xff0c;一夜吹香过石桥。一个同事辞职了&#xff0c;她辞职的原因是不喜欢同单位的另外一个同事。她跑来和我说她将离去以及必须离去的原因…