首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自C++兼容正则表达式的.NET 11兼容正则表达式

来自C++兼容正则表达式的.NET 11兼容正则表达式
EN

Stack Overflow用户
提问于 2013-12-20 18:09:57
回答 1查看 90关注 0票数 2

下面的regex用于.NET regex引擎(FYI,它所做的是解析表单name="value1,value2“name2 = value3的命令行参数,其中引号是可选的)

(?<name>[^=]+)=?((?<quoted>\""?)(?<value>(?(quoted)[^\""]+|[^,]+))\""?,?)

我想在C++ 11中使用它。但是,我知道没有命名组或条件(?)不完全确定)在C++的regex语法中。

我之所以在这里问这个问题,是因为我还没有找到任何工具/网页,可以轻松地测试正则表达式并让它在C++ 11中工作(而几乎所有其他平台都有工具)。指向在线(或脱机) C++ 11兼容regex测试工具的链接可以显示组、子组和显示有用的错误消息,这也是一个可以接受的答案。

PS:我知道命令行解析是一个最适合解析器的练习,但是我已经使用这个简单的正则表达式足够长的时间了,对于我的大多数命令行工具来说,没有任何问题,我认为它有任何缺点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-21 09:29:40

在C++11中对regex的支持仍然是粗略的,例如gcc只在4.9版中有良好的regex支持。您还没有指定您的环境,但是您可以找到关于什么是支持的和什么不是在这个问题上的详细信息。

最好的方法是使用boost regex库--您应该阅读理解标记子表达式和捕获

为了使测试和实验变得更容易,按照您的要求,下面是一个准备好的环境,它适应boost文章中的示例,并设置了正确的编译标志g++-4.8 -O2 -Wall -pedantic -pthread -DBOOST_REGEX_MATCH_EXTRA main.cpp -lboost_regexhttp://coliru.stacked-crooked.com/a/8950eb9c097b0db1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20709558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档