Я пытаюсь получить некоторые именованные группы (X, Y, Z, W, P, R) из строки, и у меня возникают проблемы с получением вывода.
Это частьстрока, содержащая информацию, которую я пытаюсь извлечь:
[1,1] = Group: 1 Config:
X: -196.999 Y: 1009.999 Z: 210.342
W: 90 P: 0 R: 90
Я пытался получить значения, используя следующее
@"(?<X>(?<=X:\s*)([+-]?\d*(\.\d+)?))
(?<Y>(?<=Y:\s*)([+-]?\d*(\.\d+)?))
(?<Z>(?<=Z:\s*)([+-]?\d*(\.\d+)?))
(?<W>(?<=W:\s*)([+-]?\d*(\.\d+)?))
(?<P>(?<=P:\s*)([+-]?\d*(\.\d+)?))
(?<R>(?<=R:\s*)([+-]?\d*(\.\d+)?))"
, но я не получил никаких значений.
Только когда я использую @"(?<X>(?<=X:\s*)([+-]?\d*(\.\d+)?)(?=\s*Y:))"
, я получаю правильное значение для X Group.
Однако это
@"(?<X>(?<=X:\s*)([+-]?\d*(\.\d+)?)(?=\s*Y:))
(?<Y>(?<=Y:\s*)([+-]?\d*(\.\d+)?)(?=\s*Z:))"
Также не дает мне никаких значений.
В конечном итоге совпадение Config:\s*
также вступит в игру, и когда я попробую это
@"(?<=Config:\s*)(?<X>(?<=X:\s*)([+-]?\d*(\.\d+)?)(?=\s*Y:))"
Я не получаю значение, но это делает
@"(?<=:\s*)(?<X>(?<=X:\s*)([+-]?\d*(\.\d+)?)(?=\s*Y:))"
Итак, А) Я не понимаю, зачем мне смотреть в будущее (?=\s*Y:)
, чтобы получить значение
B) Почему происходит сбой, если я добавляю другую группу?
C) Почему я не сопоставляю Config?
Может кто-нибудь объяснить мне, что я здесь делаю неправильно?