kaの正確な数を含む言語の正規表現を探しています。
私はこれでかなり立ち往生しています。さまざまな長さの場合、ソリューションは で簡単です。
このような正規表現をどのように達成できるかについて、誰かアドバイスはありますか?
kaの正確な数を含む言語の正規表現を探しています。
私はこれでかなり立ち往生しています。さまざまな長さの場合、ソリューションは で簡単です。
このような正規表現をどのように達成できるかについて、誰かアドバイスはありますか?
これに対する簡単な解決策はありません。
その言語は規則的ですが、説明するのは醜いです。(a|b)^n
両方の言語 (とb*(ab*)^k
) の (自明な) DFA を互いに交差させることで取得できますが、(n-k)*k
状態が返された DFA が返されます。それを正規表現に変換しても改善されません。
ただし、実際の実装を探している場合は、はるかに簡単になります。入力を両方の正規表現に対して単純にテストすることも、先読みを使用してそれらを 1 つの正規表現に構成することもできます。
/^(?=[ab]{n}$)b*(ab*){k}$/