2 つの名前付き部分とオプションのハイフン区切りを持つ正規表現があります。
^(?<Left>xxx)-?(?<Right>yyy)$
(実際の正規表現を簡略化しました。'xxx' と 'yyy' の代わりに、2 つの非常に長く複雑な正規表現を想像してください。)
ただし、ハイフンはオプションであるため、暗黙のセパレーターを別の場所に追加できる入力文字列があります。Left または Right が入力文字列の大部分を占める必要があると言って、あいまいさを解決できる方法はありますか?
たとえば、「ABC」/「DEF」または「ABCDE」/「F」のいずれかに分割できる入力「ABCDEF」の場合、両方とも 2 つのサブ正規表現の有効な一致です。「右」に有効な残りが残っている限り、「左」に最大のチャンクを取りたいので、2番目の分割を好むとします。
私は .NET の正規表現ライブラリを使用していますが、標準的な手法があることを願っています。