私は、約3000文字の長さのテキストブロックでマルチパイプRegexを実行しています。私は別の6を持っているし、試合はお互いに同じ順序に相対常にあり、それは、私はいつも、私はパターン1を見つけたテキストのブロックにテストしてい今、最後の1 firsstRegexで最適化またはパイプ(|)
Pattern1|Pattern2|Pattern3|Pattern4|Pattern5|Pattern6
の優先順位を決定したいです複雑。スタンドアローンの場合は41ステップ、パイプの場合は30,000を要します。私は、この特定の問題についてより具体的な情報を得るかもしれないが、パイプやパイプをより効率的にするためのいくつかの一般的なステップがあるかどうか疑問に思っていました。助けとなる「注文」はありますか?明らかに、これは最初のパターンをテストしていないので終了します。まだ41ステップなので、私が気づいていない基本的なものや建設的なものを遵守する必要があるかどうか疑問に思っています。
私は公平な最初の質問は、次のように推測します。なぜこの正規表現を使用していますか? – usr2564301
はい、基本的なことはパターンが文字列の各位置(左から右)で各ブランチでテストされていることです(ブランチごとに文字列全体ではありません)。 –
あなたの個々の正規表現がどのように関係しているかを完全に理解していませんが、それらを独立した検索に分割することはできますか?そうであれば、マルチプロセッシングモジュールを使用して、それぞれが用語のうちの1つだけを検索するワーカープロセスを設定できます。おそらく、後処理の結果によっては、必要なフォーマットに結果を整理することができます。私は与えられた正規表現をこれ以上単純化する方法を知らない。 – skrrgwasme