следующие сценарии:
stringN stringA-stingB:stringC:stringD
stringN -stingB:stringC:stringD
stringN -stingB:stri:ngD
stringN stringA-stingB:stringD
У меня есть следующее регулярное выражение:
^(?<groupN>.*?)\s(?<groupA>.*?)?-(?<groupB>.*?):((?<groupC>.*?):)?(?<groupD>.*?)$
Проблема возникает в сценарии 3 (строка 3), где есть: внутри группы захвата: groupD, что делает эту полосу включенной в группу захвата groupC. Мне нужно в сценарии 3 поймать stri:ngD в groupD, чтобы не было значения для groupC. Обычно я думал о ретроспективном просмотре с подстановочным знаком, но получаю сообщение об ошибке, поскольку подстановочный знак не поддерживается в ретроспективном просмотре, так что есть ли другой способ сделать это?