私はJavascriptで作業していますが、それは一般的な正規表現の質問だと思います.
文字間の距離が等しい長い文字列の部分文字列を検索するスクリプトを書いています。たとえば、テキストには、連続する 2 文字ごとに距離が 2a11b22c33d44
の文字列があります。abcd
正規表現検索を使用してそのような文字列を見つけるのは簡単です: 上記の例では、 regexp を検索するだけです/a.{2}b.{2}c.{2}d/
。だから私が今やっていることはこれです: 検索する単語と、.{n}
それらの間に単純に配置した連続する文字間の距離 (n は距離) を指定して、これを正規表現としてコンパイルし、残りの作業を実行させます。
これは、文字間の距離が小さい場合 (たとえば 1000 前後)、実際には非常にうまく機能します。その後は遅くなります。それでも機能しますが、同じ検索をより効率的に実行する別の方法があることを願っています。ギャップが大きい場合に大幅に遅くなる明確な理由がわかりません (それでも、テキスト全体を 1 回だけ確認する必要がありますよね?)