У меня есть регулярное выражение с двумя именованными частями и необязательный разделитель дефисов.
^(?<Left>xxx)-?(?<Right>yyy)$
(я упростил фактическое регулярное выражение вниз. Вместо 'xxx' и 'yyy' представьте себедва действительно длинных и сложных регулярных выражения.)
Однако, поскольку дефис необязателен, существуют входные строки, в которые подразумеваемый разделитель может быть добавлен в разные места.Есть ли способ, которым я могу разрешить неоднозначность, сказав, что Left или Right должны занимать большую долю входной строки?
Например, для входа "ABCDEF", который может быть разделен как "ABC" /«DEF» или «ABCDE» / «F», причем оба являются действительными совпадениями двух подвыражений.Скажем, я предпочитаю второе разделение, потому что я хочу, чтобы 'Left' брал самый большой кусок, который может, пока в 'Right' оставлен допустимый остаток.
Я использую библиотеку регулярных выражений .NET, но я надеюсь, чтоесть стандартная техника.