正規表現の課題: 連続する文字の繰り返しのマッチング
3 つ以上の連続する繰り返し文字を含む文字列を識別することは、プログラミングにおける一般的な課題です。この記事では、この目的に特化した正規表現 (正規表現) の作成の複雑さを説明します。
最初に、「[A-Za-z0-9]{3」を使用して正規表現を定義しようとします。 ,}" と "(.){3,}" は直感的にわかるかもしれません。ただし、これらのパターンは、連続する文字ではなく、任意の 3 文字のシーケンスと一致します。検索を絞り込むために、「(.)1{3,}」式は、前の文字に一致する後方参照 (1) を導入します。
残念ながら、このアプローチは RE2 (正規表現エンジン) で根本的な制限に直面しています。ゴウが使用。 RE2 は、後方参照よりも線形時間文字列処理を優先します。その結果、後方参照を効率的に実装することは実現できません。
代替アプローチ
この制約を考慮して、次の代替案のいずれかを追求することをお勧めします。
結論
連続する文字の繰り返しに一致する正規表現を作成するには、使用されている特定の正規表現エンジンを考慮する必要があります。 。 RE2 は後方参照よりも効率を優先しますが、この問題を解決したい人には他のオプションも存在します。適切な正規表現実装がない場合でも、手動で文字列を解析することは依然として有効な解決策です。
以上が正規表現で連続する文字の繰り返しを照合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。