C或C ++有标准的正则表达式库吗?
可以? 如果是,我在哪里可以得到它的文件……如果没有,那么哪个是最好的选择?
C ++ 11现在终于有了一个标准的正则表达式库 – std :: regex。
如果您无法访问C ++ 11实现,那么一个很好的替代方案可能是boost regex 。 它并不完全等同于std :: regex(例如“empty()”方法不在std :: regex中 ),但它是一个非常成熟的C ++正则表达式实现。
在类UNIX系统下,您可以使用POSIX正则表达式函数 。
Microsoft Visual C ++ 2008 Feature Pack 1(现已加入Visual Studio 2008 Service Pack 1)包含“官方”TR1 reg ex类型的实现。 把自己打昏 :-)
检查boost regex库。 它应该成为C ++ 0x标准的一部分。
如果按标准表示与编译器捆绑在一起,则不然。 但捆绑正则表达式扩展的大多数其他语言使用非常标准的c
实现。 例如PCRE – Perl兼容正则表达式和C库具有POSIX正则表达式支持(参见手册页 )。
正则表达式是C ++扩展TR1的一部分。 Dinkumware,visual studio和其他人已经实现了这一点。 看到
C ++ TR1正则表达式快速入门
Visual C ++ 2008function包
Qt ,来自Trolltech,也有一个正则表达式实现,我发现它很容易使用。 但是,如果您不打算将Qt用于其他任何事情,我会使用Boost.Regex,因为您可能还可以将Boost用于其他目的。
标准ISO / IEC 14882:2011编程语言C ++描述了一个正则表达式类作为C ++库的一部分,它深受成熟的Boost库的影响。
奇怪的是,截至2013年1月,编译器对此标准的遵从性仍然不稳定,例如GNU编译器套件的流行C ++编译器不支持/遵守此部分标准。
出于这个原因,最好在此时使用Boost,直到编译器支持达到合规性。
PCRE的 +1 – Perl兼容的正则表达式 ,我记得也使用了Mircosoft的GRETA 。