こんにちは、これは私の文字列であるPCREを使用します。増加ブースト正規表現速度やC++で
key{info('1'),details('1'),others('{"1": "2test data1", "2": "2test data2"}')}
私はこのライン以上の1 milionを作り、(同じ)などのファイルに入れ
key{info('1'),details('1'),others('{"1": "2test data1", "2": "2test data2"}')}
key{info('1'),details('1'),others('{"1": "2test data1", "2": "2test data2"}')}
key{info('1'),details('1'),others('{"1": "2test data1", "2": "2test data2"}')}
key{info('1'),details('1'),others('{"1": "2test data1", "2": "2test data2"}')}
key{info('1'),details('1'),others('{"1": "2test data1", "2": "2test data2"}')}
..
..
..
を
今、私は正規表現
key[{]info[(][']1['][)],details[(][']1['][)],others[(]['][{](.*?)[}]['][)][}]
(内部の各ライン(その他)を取得)
0123を使用したいです私はpreg_match_all
機能とPHPでそれをテストし、私はPHPがちょうど3秒に1つのmilionラインのすべてを検出しますが、私の本当のプログラムはC++であるので、私はC++
regex RegexString(R"~(key[{]info[(][']1['][)],details[(][']1['][)],others[(]['][{](.*?)[}]['][)][}])~", regex_constants::optimize);
に、この正規表現をしようとしたことを驚いています
と私は驚いたが、今回は悪かった。 10 Min
正規表現は、すべての行を得た後
私は、今...ブーストを使用して、より良い結果(2分)を得たが、私はPHP(PCRE)(3秒)で見たことは私が狂っ製(検出)するもの私はする必要がありますか?
Boostや標準のC++正規表現では、スピードを上げる方法(3〜10秒で完了)はありますか、C++プロジェクトでPCREだけ使用する必要がありますか?
結果
正規表現:10分
ブースト:2分
PCRE(PHP):regex101.com
によると、3秒
いくつかの説明: - http://stackoverflow.com/questions/33163365/regex-works-very-slow http://stackoverflow.com/questions/14205096/ c11-regex-pythonより遅い – rock321987
助けられません!私はちょうど私が最適化を最適化することができるかどうかを知りたい場合は最高の最適化は何かを教えてくださいまたは速度を向上させる方法がない場合は私はpcreを使用します – Elh48
あなたは時間差が正規表現の結果であると確信しています何か?ループ内の正規表現をコンパイルしていますか? – Laurel