asciiでエンコードされたビットの文字列で繰り返される部分文字列を検出するGNU拡張正規表現を考え出そうとしています。私はうまくいく表現を持っています - ある種。問題は、多くの解を持つ可能性のある文字列を指定すると、実行が非常に遅くなることです
表現
([01]+)(\1)+
コンパイルは高速ですが、文字列に対する実行には約 1 分かかります
1010101010101010101010101010101010101010101010101010101010
glibc 2.5-49 の正規表現実装を使用しています (CentOS 5.5 に付属しています)。
FWIW、pcre ライブラリは、gregexp や perl のように、すばやく実行されます。したがって、明らかな、しかし間違った答えは「libpcreを使用する」です。プロジェクトに新しい依存関係を簡単に導入できません。CentOS/RHEL に付属する std C ライブラリ内で作業する必要があります。