通常、私たちの作業では、キャプチャまたは一致操作で正規表現を使用します。
ただし、正規表現は、正規表現に一致する正当な文を生成するために (少なくとも手動で) 使用できます。もちろん、一部の正規表現は無限に長い文に一致する場合があります (例: 式 ) .+
。
正規表現文生成アルゴリズムを使えば解決できる問題があります。
擬似コードでは、次のように動作します。
re = generate("foo(bar|baz)?", max_match = 100); #Don't give me more than 100 results
assert re == ("foobar", "foobaz", "foo");
私のためにこれを実行するアルゴリズムは何ですか?