是吗?如果是的话,我可以在哪里得到它的文件......如果没有,那么哪一个会是最好的选择?C或C++有一个标准的正则表达式库吗?
回答
C++ 11现在终于也有一个standard regex library - 的std ::正则表达式。
如果您没有访问C++ 11的实现,一个很好的选择可能是boost regex。它不完全等同于std :: regex(例如the "empty()" method is not in the std::regex),但它对于C++来说是非常成熟的正则表达式实现。
这个答案是过时的,截至2012年的答案是现在是的,C++有一个标准的正则表达式库,由C++ 11委托,在标题“正则表达式” – 2012-08-03 01:39:32
@Clairvoire下 - 我已决定编辑/更新自2009年年底以来对这些更改的答案,谢谢您对这个过时答案的提醒。 – 2012-08-03 07:13:59
区别在于C++标准不支持命名子组,即命名部分正则表达式,以便稍后可以按名称获取它们。 – user3111311 2014-01-23 12:57:15
检查boost regex库。它应该成为C++ 0x标准的一部分。
在类UNIX的系统中,您可以使用POSIX regex functions。
如果标准你的意思编译器捆绑在一起,然后没有。但是,捆绑正则表达式扩展的其他语言大多使用相当标准的c
实现。例如。 PCRE - Perl Compatible Regular Expression和C库有POSIX正则表达式支持(请参阅man page)。
微软的Visual C++ 2008 Feature Pack 1中(现轧到Visual Studio 2008的Service Pack 1)包含了 '官方' TR1 REG EX类型的实现。敲你自己:-)
正则表达式是C++扩展TR1的一部分。 Dinkumware,Visual Studio和其他人已经实现了这一点。 见
Qt,从奇趣,也有一个正则表达式的实现,我觉得很容易使用。但是,如果您不打算将Qt用于其他任何事情,我会使用Boost.Regex,因为您可能会使用Boost实现其他目的。
标准ISO/IEC 14882:++描述了一个正则表达式类作为C++的库,它在很大程度上受成熟Boost库的影响的部分2011编程语言℃。奇怪的是,截至2013年1月,编译器对这个标准的符合性仍然很不明显,例如, GNU编译器套件中流行的C++编译器不支持/符合这部分标准。
因此,最好在此时使用Boost,直到编译器支持达到合规性为止。
- 1. 比标准库更好的东西c#正则表达式
- 2. C/C++中的正则表达式库
- 3. 正则表达式使用GNU C正则表达式库
- 4. 需要一个正则表达式C#
- 5. 目标C的正则表达式被1或2个数字
- 6. 正则表达式的目标C
- 7. C标识符的正则表达式
- 8. “C:\\”的正则表达式
- 9. 正则表达式UNMATCH在VB.NET或C#
- 10. 复杂正则表达式C#或perl
- 11. 使用正则表达式或C#
- 12. C#正则表达式提取标签
- 13. C#正则表达式提取标记
- 14. 正则表达式C#
- 15. 正则表达式C#
- 16. 正则表达式Objective-c
- 17. 正则表达式C#IsMatch()
- 18. C++正则表达式
- 19. C#正则表达式
- 20. 正则表达式在C#
- 21. mongodb c#$正则表达式
- 22. C#正则表达式
- 23. 正则表达式C
- 24. 正则表达式/ C++
- 25. 子正则表达式C#
- 26. 正则表达式,C#
- 27. c正则表达式howto
- 28. C++正则表达式
- 29. C#正则表达式
- 30. C#正则表达式
近重复:http://stackoverflow.com/questions/181624,http://stackoverflow.com/questions/923500和http://stackoverflow.com/questions/815429。 – 2009-09-14 10:31:15
http://stackoverflow.com/questions/329517/there-is-a-function-to-use-pattern-matching-using-regular-expressions-in-c – dmckee 2009-09-14 21:15:12
顺便说一句:你可以有更快的信息并更容易通过搜索:http://stackoverflow.com/search?q=c+c%2B%2B+regex+standard – dmckee 2009-09-14 21:17:19