問題タブ [boost-regex]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
470 参照

php - Boost::PHP`preg_match_all`関数のregexp類似物は何ですか?

だから私はC++に翻訳したいそのようなphp関数を持っています:

使用例:

(内容は の結果です$content= curl_exec($curl);)

preg_match_all- pattern で指定された正規表現に一致するすべての対象を検索し、それらを flags で指定された順序で一致に入れます。最初の一致が見つかった後、後続の検索は最後の一致の終わりから続行されます。

boost::regexp を使用して翻訳する方法は?

0 投票する
1 に答える
952 参照

c++ - Cookie文字列を解析してマップにする正規表現のブースト方法?

Cookie 文字列remixsettings_bits=1; wysiwyg=1,2,3,abc; remixclosed_tabs=0; remixgroup_closed_tabs=786432; remixlang=0; remixchk=5; remixsid=35d4f9907281708019490d07728c27ca5c10e5de7a869c322222225e3219e; audio_vol=100 はどうやって tham を map name<->に解析するのだろうかvalue?

0 投票する
1 に答える
559 参照

php - このようなPHPのunescape関数をC++に変換する方法は?

PHP で CMS を作成しなければならなかったとき、次のような単純なunescape html関数を作成しました。

Boost.Regexを使用して C++ に変換する方法は?

0 投票する
2 に答える
907 参照

c++ - Win32 で icu u32_regex メモリ リーク/キャッシュでブースト

オプションの ICU サポートを有効にしてブースト正規表現クラスを使用すると (詳細についてはブーストのドキュメントを参照)、メモリ リークが発生したり、リセット/クリーンアップできないメモリのキャッシュが発生したりするようです。

ブーストユニットテストフレームワークがメモリリークを報告しないように、キャッシュをクリアする方法を知っている人はいますか?

私の問題の詳細は次のとおりです:-

icu 4.2.1 のブースト 1.42 でこれを試しましたが、たまたま同じ結果でシステムに構築したので、ブースト 1.47 icu 4.8.1 に変更することで解決される問題ではないと思います。最新バージョン。

次のコード (Test.cpp) のコンパイル:-

次の方法でコマンドラインからコンパイルできます:-

マシンのヘッダー/ライブラリへの適切なパス

適切なブースト dll がパスされていない場合は、test.exe を含むディレクトリにコピーします (boost_regex-vc100-mt-gd-1_45.dll および boost_unit_test_framework-vc100-mt-gd-1_45.dll)。

上記の手順の test.exe を実行すると、次のようになります:-

2 番目のブロックの先頭に名前があるため、icu が実際にここで犯人であると推測しています。

最初のテスト (つまり、u32_regex ではなく標準の正規表現を作成するだけ) を実行しただけでは、メモリ リークは検出されませんでした。

複数の u32_regex をテストに追加しても、メモリ リークが増えることはありません。

icu のドキュメントに従って、u_cleanup() 呼び出しを使用して icu キャッシュをクリーンアップしようとしました。ICU の初期化と終了のセクションを参照してください。

しかし、私は icu ライブラリにあまり詳しくありません (実際には、Unicode 対応の正規表現サポートが必要だったので使用しているだけです)。正規表現 dll をブーストします。

繰り返しますが、問題は次のように見えます:-

オプションの icu サポートを使用してコンパイルされた dll で正規表現をブーストします (これは icu への静的リンクを使用していると確信していますが、ここでは間違っている可能性があります)。

u_cleanup() を呼び出すことができるようにテスト プログラムで icuuc.lib にリンクすると、boost regex ライブラリを介してロードされた ICU のインスタンスが保持するメモリに影響を与えないように見えます (そうであればかなり奇妙です)。

正規表現ライブラリに呼び出しが見つかりません。これにより、実際に呼び出しを行う場所である ICU データをクリーンアップするように要求できます。

0 投票する
2 に答える
390 参照

c++ - Boost :: Regexの使用に関する問題(コンソールがフリーズするだけです)

何らかの理由でboost::regexがアプリケーションをオーバーロードし、エラーなしでフリーズしますが、正常にコンパイルされます。たとえば、このコードはフラットに失敗します。私は何が間違っているのですか?DLLエラーかどうかを確認するために1.47をブーストするように更新しましたが、それでも機能しません。boost :: regexをテストするためのサンプルプログラムを入手できますか?

0 投票する
1 に答える
78 参照

c++ - Boost RegEx: 具体的な質問

私はこの表現を使用しようとしています:

私のコードでは、\ を 2 番目の \ でエスケープしていることに注意してください。

以下の文字列で検索する場合。私は近いと思いますが、葉巻はありません。上記の式が下のテキストで一致を見つけることができるようにしたい. どこが間違っていますか?

使用したリソース:

  1. http://www.solarix.ru/for_developers/api/regex-en.html

  2. http://www.boost.org/doc/libs/1_47_0/libs/regex/doc/html/boost_regex/introduction_and_overview.html

  3. http://www.regular-expressions.info/reference.html


アップデート

コメント助かりました。記録保持の目的で、正規表現の習得に役立った正規表現サイトを私のスレッドに投稿してくれる人を今でも見たいと思っています。とにかく、私のコード (主にブースト Web サイトからコピーされたもの) は.

うまくいくようです。ただし、お気に入りのサイトへの回答投稿を受け入れて、初心者にいくつかのポインターを提供できるようにしてください =)。

0 投票する
1 に答える
1945 参照

c++ - 循環バッファイテレータの中間値を格納する方法は?

ブースト循環バッファでブースト正規表現を使用していて、一致が発生する位置を「記憶」したいのですが、これを行うための最良の方法は何ですか?以下のコードを試しましたが、「end」は常に同じ値を格納しているようです。たとえば、前の「終了」から最新の「終了」までトラバースしようとすると、機能しません。

}

0 投票する
0 に答える
274 参照

boost - DYN_LNK と USE_DLL と USE_LIB をブースト

次の定義の違いは何ですか:

(正規表現は任意に選択されました)?

libboost*.libプロジェクトを、boost*.libboost*.dllファイルに自動リンクするのはどれですか? 上記のファイルの違いは何ですか。

0 投票する
2 に答える
833 参照

c++ - ブースト正規表現を使用したバイナリ データの照合

ブースト正規表現は、特定のバイナリ入力のバイナリ データと一致できますか?

例:
バイナリ形式で入力:
0x01 0x02 0x03 0x04 0x05 0x01 0x02 0x03 0x04 0x08

一致するバイナリ表現:
0x01 0x02 0x03 0x04

この場合、2 つのインスタンスが一致する必要があります。

どうもありがとう!

0 投票する
2 に答える
161 参照

regex - ブースト正規表現の構築

次の文字列のすべての数字と一致させたい:

ただし、何らかの理由で以下boost::regexが機能しません。

どうしたの?

編集:関連コードの投稿:

出力:

また、ファイルの内容を文字列に投稿します。