次の 2 つのケースを考えてみましょう。いずれの場合も、テストする文字列には文字 'a'、't'、'g'、'c' のみが任意の組み合わせで含まれ、任意の長さにすることができます。たとえば、「t」のみを含めることができます。
- 「a」が 5 回以上出現するかどうかをテストします。文字列の長さが 100 で、文字 'a' が最初の 10 か所に 5 回出現する場合、正規表現は残りの文字列を検索しません。
- 0 個以上の連続する 'a' が 1 回だけ出現し、文字列が 'a' で終わってはならないかどうかをテストします。有効な例: ggtcccccccctggtaaaatcg、gctgctcgtccttgcttcg、ag。無効: a、agatcttgcgt、agtcga。
これで、両方のケースをテストするための基本的な正規表現を作成する方法がわかりましたが、検索が最適化され、不要な反復が無駄にならないようにしたいと考えています。上記の 2 番目のポイントでは、agatcttgcgt は、3 番目の文字がテストされるとすぐに終了する必要があります。これは、連続規則に違反しているためです。
最適化された正規表現に関するヘルプが役立ちます。また、主要な質問ではありませんが、検索の実行方法 (反復回数など) の内部を確認するにはどうすればよいですか?