18

しますか?はいの場合、そのドキュメントはどこで入手できますか...そうでない場合は、どちらが最良の代替手段ですか?

4

9 に答える 9

31

C++11 には、ついに標準正規表現ライブラリstd::regex が含まれるようになりました。

C++11 実装にアクセスできない場合は、適切な代替手段としてboost regexを使用できます。std::regex と完全に同等ではありません (たとえば、「empty()」メソッドは std::regex にありません) が、C++ の非常に成熟した正規表現の実装です。

于 2009-09-14T09:38:02.807 に答える
7

UNIX ライクなシステムでは、 POSIX 正規表現関数を使用できます。

于 2009-09-14T09:48:22.967 に答える
6

Microsoft Visual C++ 2008 Feature Pack 1 (現在は Visual Studio 2008 Service Pack 1 に組み込まれています) には、「公式」TR1 正規表現型の実装が含まれています。ノックアウトしてください:-)

于 2009-09-14T10:06:09.727 に答える
5

ブースト正規表現ライブラリを確認してください。これは、C++0x の標準の一部になるはずです。

于 2009-09-14T09:38:52.900 に答える
3

標準でコンパイラにバンドルされていることを意味する場合は、そうではありません。しかし、正規表現拡張をバンドルする他の言語のほとんどは、かなり標準的なc実装を使用しています。たとえば、 PCRE - Perl 互換の正規表現と C ライブラリは、POSIX 正規表現をサポートしています ( man ページを参照)。

于 2009-09-14T09:51:16.640 に答える
2

正規表現は、C++ 拡張 TR1 の一部です。Dinkumware、Visual Studio などは既にこれを実装しています。見る

C++ TR1 正規表現のクイック スタート

Visual C++ 2008 機能パック

于 2009-09-14T15:05:29.173 に答える
1

標準のISO/IEC 14882:2011プログラミング言語C ++は、成熟したBoostライブラリの影響を強く受けるC++のライブラリの一部として正規表現クラスを記述しています。

不思議なことに、2013年1月の時点で、コンパイラのこの標準への準拠はまだ不十分です。たとえば、GNUコンパイラスイートの人気のあるC ++コンパイラは、標準のこの部分をサポート/準拠していません。

そのため、コンパイラのサポートが準拠するまで、この時点でBoostを使用することをお勧めします。

于 2013-01-13T06:43:57.603 に答える
1

TrolltechのQtにも、非常に使いやすい正規表現の実装があります。ただし、Qtを他の目的に使用する予定がない場合は、Boost.Regexを使用します。これは、他の目的にもBoostを使用することをお勧めします。

于 2009-09-14T15:56:46.357 に答える
0

+1 for PCRE - Perl Compatible Regular ExpressionMircosoft の GRETAも使用したことを思い出しました。

于 2009-09-14T10:47:22.930 に答える