文字列 x が abcd の任意の組み合わせと等しいことを確認したいとします (各文字は 1 回または 0 回表示されます。各文字は繰り返されるべきではありませんが、組み合わせは任意の順序で表示されます)。
- 有効な例: bc .. abcd ... bcad ... b... d .. dc
- 無効な例 abcdd、cc、bbbb、abcde (もちろん)
私の努力: さまざまな手法を試しました: 最も近いものは x =~ ^(((a)?(b)?(c)?(d)?))$ でした
しかし、私が書いたのと同じ順序で入力しないと、これはうまくいきません:
- 対象: ab、acd、abcd、a、d、c
- 機能しない: bcda、cb、da (上記の順序でないもの)
ここでソリューションをテストできます: http://rubular.com/r/wCpD355bub
PS: 文字はアルファベット順ではない可能性があり、ucet である可能性があります