私の質問はこれと非常によく似ていますが、各変更をオプションにし、繰り返しを行わないようにしたいという点が異なります。
例: 正規表現は次の文字列と一致する必要があります (これは単純化しすぎており、A と B は複雑になる可能性があります)。
XAB
XBA
XA
XB
X
XAA、XBB、XABA、XABB、XBAA には一致しません。
これが私がこれまでに持っているものです:
/(X)(?:(A)|(B)){0,2}$/
これにより、繰り返し (XAA など) が可能になり、空の配列要素を持つ PHP の XB で問題が発生するようです。
編集:X、A、およびBの実際の値を取得する必要があることを忘れていました(利用可能な場合)。文字列全体の一致だけではありません。