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 。