問題タブ [re2]
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.
c++ - RE2 正規表現ライブラリを使用して文字列から html タグを削除する
文字列から HTML タグを削除する必要があります。
パターン削除に RE2 ライブラリを使用する場合
使用すると、Htmlタグが削除されません
html タグが削除されたのはなぜですか? ファイルから HTML タグを削除するためのより良い正規表現を提案できる人はいますか?
regex - RE2 および UTF16 (または UCS-2)
RE2いいですね。高速かつ決定論的。
ただし、UTF8 のみをサポートします。私の文字列はネイティブに UTF16であり、前後に変換するとパフォーマンスが低下します。
RE2 にネイティブのUTF16機能を実装するのはどれくらい難しいでしょうか?
RE2 にネイティブのUCS-2機能を実装するのはどれほど難しいでしょうか? (これはもっと簡単なはずです)
つまり、通常のプログラマーがこれを行うのに何時間必要かということです。
これは数週間私を悩ませてきたので、私は尋ねようと思いました!
python - pyre2 は組み込みの re モジュールよりも遅いですか?
pyre2
( https://github.com/axiak/pyre2 )を使用すると、パフォーマンスの問題 (マッチング時間) が発生しました。
私は3つのプログラムを持っています:
組み込みの re モジュールを使用した純粋な Python: https://gist.github.com/1873402
Pyre2 を使用した Python: https://gist.github.com/1873402。(コードの大部分は第 1 のプログラムと同じです。組み込みの re を使用する場合を除いて、utf-8 文字列を unicode にデコードします。これは pyre2 を使用する場合には必要ありません)
re2 を使用した C/C++: https://gist.github.com/1873417
正規表現のプリコンパイル時間とマッチング時間の 2 つの時間を測定しました。
No.1 プログラム: 1.65 秒 1.25 秒
第2プログラム: 0.04s 1.8s
第3プログラム: 0.02s 0.8s
それらはすべて同じ正規表現と入力によって供給されます。(すべての正規表現は でサポートされていre2
ます)
次に、Cython でのプロファイリングに関するドキュメントに従いました。次の結果が得られました。
_search
関数 (re2.pyx:393) に時間がかかりすぎているようです。しかし、これと純粋なCバージョンとの間でどのように違いがあるのか わかりません。
PS: Pyre2 リビジョン: コミット543f228
re2 リビジョン: 変更セット:79:0c439a6bd795
実際のMatch
関数 (re2.pyx:424) は、この関数でほとんどの時間を費やしていると思います。
次に、 Match 関数を cdef 関数にリファクタリング_my_match
して、プロファイル結果で確認できるようにし、 cdef function へのStringPiece
割り当てもリファクタリングします_alloc_sp
。(変更の詳細: https://gist.github.com/1873993 ) 再プロファイリングしてから取得:
しかし、search
それでもかなりの時間がかかります (tottime で 10.060)。
誰が問題が何であるかを理解できますか?
c++ - 互換性のない複数のバージョンのC++ライブラリをサポートする
Googleのre2正規表現ライブラリをラップするRubyC ++拡張機能を作成しましたが、ライブラリの最近の更新により、関数のインターフェイスが次のように変更されました。Match()
に:
(新しいint endpos
引数に注意してください。)
VERSION
私の質問は、re2がイントロスペクトできる定数を指定していないように見えるにもかかわらず、このライブラリの両方のバージョンを1つの拡張機能でサポートすることは可能ですか?
理想的には、新しいバージョン(6つの引数を使用)を試して、失敗した場合は、古いバージョンにフォールバックできるようにしたいです(endpos
引数を簡単に埋め戻すことができるため)。
現時点では、私のコードは次のようになっています。
ただし、古いバージョンのre2を使用している場合は、次のようにする必要があります。
c++ - re2 は文字列をまったく変更しません
re2での最初の試みで、このコードをここに作成しました:
うまくいきません。s
変化せず、空白のままです。最初の行を に変更しstring s = "foo";
、2 行目を実行した後s
は のままにし"foo"
ます。
私は何を間違っていますか?
c++ - RE2を使用して一致する文字列のオフセットを見つけるにはどうすればよいですか?
RE2は、Googleから入手できる最新の正規表現エンジンです。現在gnuregexを使用しているプログラムでRE2を使用したい。私が抱えている問題は、何が一致するかを見つけることに関するものです。RE2が返すのは、一致した文字列です。一致したもののオフセットを知る必要があります。私の現在の計画は、RE2が返すものを取得してfind
から、C++文字列でを使用することです。しかし、これは無駄に思えます。RE2のマニュアルを読みましたが、その方法がわかりません。何か案は?
perl - re::engine::RE2 のコンパイル時の「エラー: 非 POD 要素タイプの可変長配列」
re::engine::RE2
でモジュールをインストールしようとしていますcpan
。
ビルド時に、コンパイラは次のエラー メッセージを出力します。
どういう意味ですか?どうすれば修正できますか?2011 Macbook Air と Perl 5.12 を使用しています。
python - Pythonでre2の結果がreモジュールと異なるのはなぜですか?
re2を使用しようとしています。
結果:
しかし、re2の結果は異なります
結果:
- 新しい文字列パターンを実行するたびに
re2
番号1を出力するのはなぜですか? - 数字の1を非表示にする方法は?
re module
(not found => return None)で結果が異なるのはなぜですか?
re2 バージョンは 0.2.20 です。そしてPythonは2.7です
ありがとうございました
regex - ストリームでの RE2 正規表現?
ストリームで Google RE2 を使用することは可能ですか? 正規表現で処理すると想定される一部の入力リテラルは、メモリ内に保持するには大きすぎる可能性があります。